当前播放: 06 | HelloWorld程序编译和运行(Windows)
00:00 / 00:00
高清
  • 高清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看
课程目录
第一章 Java编程基础 (30讲)
01 | 课程介绍
免费
02 | 内容综述
免费
03 | 开发环境搭建(macOS)
免费
04 | HelloWorld程序编译和运行(macOS)
免费
05 | 开发环境搭建(Windows)
免费
06 | HelloWorld程序编译和运行(Windows)
免费
07 | 详解HelloWorld程序
免费
08 | IntelliJ IDEA集成开发环境的安装和使用(macOS)
09 | IntelliJ IDEA集成开发环境的安装和使用(Windows)
10 | 从加减乘除到变量
11 | 再探计算加减乘除的程序
12 | Java中的基本数据类型
13 | Java中的运算符
14 | Java中的位运算符
15 | 基本数据类型的更多语法点
16 | 字符集编码和字符串
17 | 操作符和数据类型总结
18 | 程序执行流程之if-else语句(上)
19 | 程序执行流程之if-else语句(下)
20 | 程序循环之for语句
21 | 代码块和变量的作用域
22 | 程序循环之while语句
23 | 程序执行流程之switch语句
24 | 循环和判断的总结(上)
25 | 循环和判断的总结(下)
26 | 用数组保存成绩
27 | 认识变量和数组(上)
28 | 认识变量和数组(下)
29 | 多维数组
30 | 用数组灵活处理程序
第二章 Java面向对象编程 (74讲)
31 | 类(class)
32 | 初探类和对象
33 | 认识引用类型(上)
34 | 认识引用类型(下)
35 | 类、对象和引用的关系
36 | 认识数组类型
37 | 引用的缺省值null
38 | 像自定义类型一样使用类
39 | Java中的包和访问修饰符(上)
40 | Java中的包和访问修饰符(下)
41 | 打造一个小超市
42 | IntelliJ调试程序初探
43 | 方法:让Merchandise对象有行为
44 | 返回值:让Merchandise计算毛利润
45 | 参数:让Merchandise计算多件商品的总价
46 | 参数和返回值是怎么传递的
47 | 分清参数、局部变量和实例的地盘
48 | 隐藏的this自引用
49 | 理解方法:一种特殊的代码块
50 | 理解方法的调用:代码的一种特殊跳转
51 | 给类和方法加Java注释
52 | 成熟的类的对象要自己做事情
53 | 方法的签名和重载
54 | 重载的参数匹配规则
55 | 构造方法:构造实例的方法
56 | 构造方法的重载和互相调用
57 | 静态变量
58 | 静态方法
59 | 静态方法的重载
60 | static代码块和static变量初始化
61 | 方法和属性的可见性修饰符
62 | 重新认识老朋友:Math和Scanner(上)
63 | 重新认识老朋友:Math和Scanner(下)
64 | 最熟悉的陌生人:String (上)
65 | 最熟悉的陌生人:String (下)
66 | 重新认识老朋友: main方法和System类
67 | String类的好兄弟
68 | 继承:方便让商品增加新的类别
69 | 子类对象里藏着一个父类对象
70 | 覆盖:子类想要一点不一样
71 | super:和父类对象沟通的桥梁
72 | super:调用父类的构造方法
73 | 父类和子类的引用赋值关系
74 | 多态:到底调用的哪个方法?(上)
75 | 多态:到底调用的哪个方法?(下)
76 | 多态里更多的语法点(上)
77 | 多态里更多的语法点(下)
78 | instanceof操作符
79 | 继承专属的访问控制:protected
80 | final修饰符(上)
81 | final修饰符(下)
82 | 继承里的静态方法
83 | 插曲:for循环的另一种写法
84 | 万类之祖:Object类
85 | hashCode和equals 方法(上)
86 | hashCode和equals 方法(下)
87 | toString方法
88 | 初探Class类
89 | 初探反射(上)
90 | 初探反射(下)
91 | 面向对象三要素:封装、继承和多态
92 | 枚举:定义商品的门类
93 | 接口:让商品类型更丰富(上)
94 | 接口:让商品类型更丰富(下)
95 | 抽象类:接口和类的混合体
96 | 有方法代码的接口
97 | 接口内代码的更多内容
98 | 静态内部类
99 | 成员内部类
100 | 局部内部类
101 | 匿名类
102 | 特殊类的总结
103 | 让我们的超市运转起来:设计篇
104 | 让我们的超市运转起来:代码篇
第三章 Java中的异常处理 (9讲)
105 | 初识异常:try catch
106 | Java中异常的分类
107 | 抛出异常的语法
108 | Java异常的传递
109 | 自定义异常
110 | 异常传递不是凌波微步
111 | try catch finally语句
112 | 自动回收资源的try语句
113 | Java中的常见异常
第四章 Java中的常用工具类和新语法 (22讲)
114 | Collection类族简介
115 | Collection中的List (上)
116 | Collection中的List(下)
117 | Collection中的Set
118 | 泛型简析(上)
119 | 泛型简析(下)
120 | 再探泛型
121 | Iterator接口
122 | Map:key和value的映射
123 | 定义自己的注解
124 | Lambda V.S. 匿名类(上)
125 | Lambda V.S. 匿名类(下)
126 | 基本类型的自动装箱和拆箱
127 | Java中的File类
128 | Java I/O简介
129 | 写文件内容小程序
130 | 读文件内容小程序
131 | 网络通讯名词简介
132 | 简单的网络通讯小程序(上)
133 | 简单的网络通讯小程序(下)
134 | 简单的抓取网页内容的程序
135 | JDK和JRE
第五章 Java中的线程 (19讲)
136 | 初识线程
137 | 创建自己的线程
138 | 再探线程
139 | 多线程:混乱开始了
140 | 同步控制之synchronized
141 | 同步控制之wait notify
142 | 多线程经典模型:生产者消费者
143 | 线程同步之join
144 | 死锁
145 | ThreadLocal线程专属的变量
146 | 定时任务
147 | volatile关键字的作用
148 | concurrent包基本原理
149 | concurrent包中的Atomic类族
150 | concurrent包中的锁
151 | concurrent包中的数据结构
152 | concurrent包中的线程池
153 | 聊天室开张喽 (上)
154 | 聊天室开张喽 (下)
第六章 Java编程实战 (16讲)
155 | 什么是学习一门语言
156 | Java平台简介
157 | Maven概念简介
158 | Maven的安装和配置
159 | 创建一个简单的Maven项目
160 | 一个从pptx文件中抽取文字的小工具
161 | Maven常用命令和插件
162 | Intellij更多功能介绍
163 | 值得学习的类库简介
164 | 如何在Stack Overflow上提问才不会被骂
165 | 浅谈程序设计
166 | 游戏小程序功能定义
167 | 游戏小程序设计和模块划分
168 | 游戏小程序代码分析
169 | 使用Swagger创建一个Spring Boot的Web服务
170 | 结课测试&结束语
06 | HelloWorld程序编译和运行(Windows)

06 | HelloWorld程序编译和运行(Windows)

臧萌
PayPal数据处理组技术负责人
全集5619
新人首单 ¥29.9 原价 ¥129
6
本节摘要

PDF 课件和源代码下载地址:
https://github.com/geektime-geekbang/LetsJava

登录 后留言

精选留言(25)

  •         
    public class HelloWorld{
            public static void main(String[] args){
                   System.out.println("HelloWorld!!!");
                   System.out.println("老师,您辛苦了!!!");
            }

    }

    作者回复: 建议类名改为HelloTeacher (-:

    2019-05-28
    9
  • Itachi
    老师你好, 请问输入中文时, cmd黑窗口乱码, 怎么办 (浣犲ソ 涓栫晫)

    作者回复: 首先,这个问题不大,不会影响我们后面的学习,不要慌。以后我们使用 IDE 编程,就不会有这个问题了。


    这个是因为字符集编码设置的问题。如果你用的是Windows自带的notepad,需要先检查一下的Windows设置的区域和语言设置。这是Windows7里设置的办法
    https://jingyan.baidu.com/article/3052f5a10bf44297f21f8645.html
    需要先设置成中国

    这个是Windows10的设置方式
    https://jingyan.baidu.com/article/456c463b4df85b0a583144ac.html
    同样设置成中国

    完全关闭编辑器,然后重新打开(这个很重要,如果求放心,可以重启一下系统)。用编辑器打开源文件,看一下源文件里的字符是否已经是乱码。如果是乱码,重新输入想要的字符。保存源文件(很重要,一定要保存),然后再打开,看看是否字符正常显示。

    重新开启一个CMD窗口(这个很重要),再试一次看看行不行。


    如果不行,可以重启再试一次。如果还是不行,打开一个CMD窗口,鼠标单击左上角的图标,在弹出菜单里选择“属性”,然后在弹出的窗口选择“选项”页,看一下最下面的当前代码页那个区域是不是 简体中文 GBK。如果是,应该就是源代码编辑器的编码不对。否则,应该是系统语言没有设置成中文。

    最后再补充一句。因为大家的环境都不相同,所以后面的内容都是基于统一的IDE和统一的编码进行讲解的,不会有字符编码的问题。

    2019-05-25
    6
  • LTD0622
    老师后面讲课的开发工具都是用idea吗?

    作者回复: 对的,都是 IntelliJ。作为曾经的 eclipse 插件开发工程师,我很负责的说现在如果推荐大家用 eclipse 是很不负责的行为。我已经好几年没有碰过eclipse了,而且一点都不怀念。 IntelliJ 秒杀 + 全面碾压 eclipse 以及其生态系统

    2019-07-15
    3
  • Geek_b30c1d
    还有一个就是应在名为Helloworld.java的文件中声明public class HelloWorld {
    还有找不到符号public static void main(Syring[] atgs){
    符号:类Syring
    位置:类Helloworld

    作者回复: 第一个的意思是Helloworld类名必须和文件名一样,包括大小写。

    第二个不是Syring,是String。

    2020-07-23
    1
  • 程李文华
    老师,您好,第一次留言提问,昨天看了您的课程,文华安装了jdk14.0.1,在环境变量添加路径的时候,直接使用原有的path直接添加%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;不要使,安装不成功。后面捣鼓半天,新建了一个path,这才安装成功jdk,前后耗时1小时,请问老师,是怎么一回事?

    作者回复: 默认的安装路径应该没问题的。要使用JAVA_HOME,先要创建一个JAVA_HOME的环境变量,视频里也有这么一步。

    现在主流的电脑安装的话也不会超过10分钟。难道是现在的JDK安装文件改成了在线下载的了?你看看安装文件有多大,应该是一两百m,如果是十几m,那应该是在线下载安装。

    2020-06-03
    2
    1
  • 卍卍槑想到
    public class HelloWorld{
      public static void main(String[] args){
        System.out.println("HelloWorld!");
      }
    }
    老师按照你的方法弄过后还是提示那样的错误,仔细对照了几遍没察觉出有错误...
    C:\Users\QB>cd Desktop

    C:\Users\QB\Desktop>java HelloWorld.java
    HelloWorld!

    C:\Users\QB\Desktop>javac HelloWorld.java

    C:\Users\QB\Desktop>java HelloWorld
    错误: 找不到或无法加载主类 HelloWorld
    原因: java.lang.ClassNotFoundException: HelloWorld

    作者回复:
    一个可以检查的地方:
    你用dir命令或者直接去桌面看一下有没有HelloWorld.class文件,如果有的话,可以试试看

    java -cp . HelloWorld

    2020-05-03
    1
  • Geek_dbaf3c
    老师,我是按照视频配置环境的,用记事本编写java代码,文件名是Hello.java。编译:javac Hello.java生成了Hello.class文件。但是执行时:java Hello却显示“找不到或无法加载主类 Hello“是什么原因啊

    作者回复: 把你命令行完整的输入输出和源代码贴出来看看。能编译不能运行的情况比较少,此事必有蹊跷。

    2020-02-19
    1
  • lxyoryxl
    运行 java HelloWorld 的时候出现:“找不到或无法加载主类HelloWorld”这个问题的话有可能是CLASSPATH没配置好,需要在修改CLASSPATH的变量值为:

    ,;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\toos.jar;

    注意:上面最开头的两个符号一个是,(逗号)一个是;(分号),查了网上很多答主都没写对,写成了点号加分号,由此可见以后如果要写什么博客或者回答问题时一定要保证正确性

    作者回复:
    现在JDK的版本在Windows和Mac上都不用手动配置classpath。上面这个配置的作用是把当前路径算到classpath里。现在的java命令都会把当前目录算在classpath里的。如果是报错class not found的话,按照这样配置,一下大概率是解决不了问题的。

    当然这样配置也没错,但是记得同样要注意如视频中那样配置好JAVA_HOME环境变量。

    以现在的JDK和操作系统来说, class not found最大的可能还是没有在当前目录生成class文件。

    2019-10-21
    1
  • huaweichen
    >> java HelloWorld
    Error: A JNI error has occurred, please check your installation and try again
    Exception in thread "main" java.lang.UnsupportedClassVersionError: HelloWorld has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0
            at java.lang.ClassLoader.defineClass1(Native Method)
            at java.lang.ClassLoader.defineClass(Unknown Source)
            at java.security.SecureClassLoader.defineClass(Unknown Source)
            at java.net.URLClassLoader.defineClass(Unknown Source)
            at java.net.URLClassLoader.access$100(Unknown Source)
            at java.net.URLClassLoader$1.run(Unknown Source)
            at java.net.URLClassLoader$1.run(Unknown Source)
            at java.security.AccessController.doPrivileged(Native Method)
            at java.net.URLClassLoader.findClass(Unknown Source)
            at java.lang.ClassLoader.loadClass(Unknown Source)
            at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
            at java.lang.ClassLoader.loadClass(Unknown Source)
            at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)

    请问老师,这是什么原因啊?
    谢谢。

    作者回复: 我来复盘一下,首先应该是javac没有执行或者执行失败,导致class文件没有生成。
    解决方式是你用javac HelloWorld.java编译源代码并生成class文件。

    你现在执行的class文件应该是我编译上传的。应该是你安装的JDK版本和我当时编译class文件的版本不一致,所以会出现这个问题。

    这个错误翻译成人话就是:java命令说,你这个class文件太新了,臣妾不认识……

    应该是我当时手抖用了java12 ...

    2019-05-15
    5
    1
  • 陌ai捞梓
    老师,输入C:\Users\HP\Desktop>javac HelloWorld. java 后一直显示错误空字符文字需要;这是什么情况?

    作者回复: 应该是有语法错误,比如没有用;结束一行。你可以把源代码贴出来看看

    2020-08-01
  • 陌ai捞梓
    老师您好,出现Users\HP而不是\Administrator 是什么情况?并且一直反应我错误。

    作者回复: 这个是不同的用户,不影响结果。如果你说的错误是你另一个问题中的那个,就把源代码贴出来看看

    2020-08-01
  • 卍卍槑想到
    C:\Users\QB\Desktop>java HelloWorld
    错误: 找不到或无法加载主类 HelloWorld
    原因: java.lang.ClassNotFoundException: HelloWorld
    老师这种情况下怎么办?

    作者回复: 应该是在当前目录没有找到HelloWorld.class文件。
    先进入HelloWorld.java所在的目录,然后执行javac HelloWorld.java,编译源文件生成class文件,然后再执行 java HelloWorld。

    如果还是出这个错误,应该是编译出错,没有生成class文件。可以把编译错误贴出来看看。

    2020-05-03
  • 沧海一声笑哈哈
    老师很有喜感

    作者回复: 😃

    2020-03-22
  • 影之メ哀伤ぃ🅥
    为什么我这版本显示是1.8.0,有没有办法换成11.0.2

    作者回复:
    1.8.0就是安装的Java 8,11.0.2就是Java11,别看好像差了好几个版本,其实没啥区别的。现在业内主流使用的还是Java 8。 Java 11多出来的功能还都没被业内普遍接受。

    2020-03-07
    1
  • Te Fuir
    老师,我这个根据你说的出现的是这个 错误:找不到或无法加载主类 HelloWord.java
    还有一个是这样’javac’不是内部或外部命令,也不是可运行的程序或批处理文件。

    作者回复:
    这个应该是JDK没有安装成功,或者PATH没有设置成功。javac命令是在安装的JDK目录的bin下面的,把这个bin目录增加到path里,重启一下命令行窗口(就是cmd命令),就可以用javac了。

    2020-01-17
  • JavonHsu
    老师,我按照步骤,提示找不到或无法加载主类 HelloWorld,已经确认过目录下有生成class文件,同时大小写都正确,请问还有可能是哪里出问题了呢?谢谢!

    作者回复: 可以先尝试把claas文件删除,然后重新生成一下,再执行一下试试看。如果还是不行,贴出执行的命令看一下,如果生成class文件的话,执行下面的命令应该是可以的:

    java HelloWorld

    2019-12-23
  • 稳住
    老师请问这个是什么情况...明明有这个文件
    错误:找不到文件:HelloWorld.java

    作者回复: 稳住不慌,可能和执行命令的目录有关系,也有可能和大小写有关系。

    先执行dir命令,看看当前目录有什么文件。看看输出内容里有没有HelloWorld.java。有的话执行javac 和java,如果还有问题,把整个命令行的输出贴过来看看。

    2019-12-13
  • 雲至
    老师 编译成功了 但是运行的时候显示找不到类 怎么办呢

    作者回复: 可以先用ls命令或者dir命令看一下class文件有没有生成。 参考https://github.com/deepnighttwo/LetsJava/blob/master/FAQ/01%E7%AB%A0-HelloWorld%E7%A8%8B%E5%BA%8F%E5%8F%91%E7%94%9F%E4%BA%86ClassNotFound%E9%94%99%E8%AF%AF%E6%80%8E%E4%B9%88%E8%A7%A3%E5%86%B3.md

    2019-10-18
  • 玩世不恭ヾ
    老师,从java6以后,有没有官方的中文API文档?

    作者回复:
    https://docs.oracle.com/javase/8/ 左上角可以选版本。最老的已经是7。6的文档官方都已经没有了

    2019-09-28
    1
  • carZycriss
    C:\Users\ASUS\Desktop>java HelloWorld
    Error: A JNI error has occurred, please check your installation and try again
    线程 "main" 中发生异常java.lang.UnsupportedClassVersionError: JVMCFRE003 主要版本错误;类=HelloWorld,偏移量=6
            at java.lang.ClassLoader.defineClassImpl(Native Method)
            at java.lang.ClassLoader.defineClass(ClassLoader.java:349)
            at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:154)
            at java.net.URLClassLoader.defineClass(URLClassLoader.java:727)
            at java.net.URLClassLoader.access$400(URLClassLoader.java:95)
            at java.net.URLClassLoader$ClassFinder.run(URLClassLoader.java:1182)
            at java.security.AccessController.doPrivileged(AccessController.java:686)
            at java.net.URLClassLoader.findClass(URLClassLoader.java:602)
            at java.lang.ClassLoader.loadClassHelper(ClassLoader.java:844)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:823)
            at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:325)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:803)
            at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:507)
    老师我为什么在输入程序命令行中输入java HelloWorld之后出现了以上的报错

    作者回复:
    这个应该是没有执行javac命令编译自己的class文件。可以按照视频上的步骤,执行一下javac命令,重新生成一次class文件。

    2019-08-30
收起评论
看过的人还看
数据结构与算法之美

王争  前Google工程师

80讲 | 88869 人已学习

新人首单 ¥29.9 原价 ¥129
MySQL实战45讲

林晓斌  网名丁奇,前阿里资深技术专家

49讲 | 57691 人已学习

新人首单 ¥29.9 原价 ¥129
SQL必知必会

陈旸  清华大学计算机博士

50讲 | 13808 人已学习

新人首单 ¥19.9 原价 ¥99
趣谈网络协议

刘超  网易研究院云计算技术部首席架构师

51讲 | 45562 人已学习

新人首单 ¥19.9 原价 ¥99