当前播放: 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数据处理组技术负责人
170讲 170课时,约1500分钟2718
单独订阅¥129
2人成团¥99
4
本节摘要

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

登录 后留言

精选留言(14)

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

    }

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

    2019-05-28
    5
  • 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
  • LTD0622
    老师后面讲课的开发工具都是用idea吗?

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

    2019-07-15
    1
  • 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
    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
    3
    1
  • 稳住
    老师请问这个是什么情况...明明有这个文件
    错误:找不到文件: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
  • 悦月
    老师,我从您给的地址下载好jdk并安装,配置好环境变量,输入javac显示环境配置没有任何问题,我按照老师一步步操作,发现系统提示无法识别我的Java文件,我检查了后缀名,环境变量等始没有找到原因,不过我安装jdk的时候中途报了个我看不懂的错误,而且系统一直提示我安装成功,但一直询问我要不要重新安装。问题就这样,老师能帮我想想办法吗?

    作者回复:
    "系统提示无法识别我的Java文件"是什么错误输出?

    2019-08-22
    2
  • 摩卡巧克力
    老师,我按照步骤,但是为什么找不到活无法加载主类?
    D:\>java HelloWorld
    错误: 找不到或无法加载主类 HelloWorld
    原因: java.lang.ClassNotFoundException: HelloWorld

    作者回复: 错误是指找不到HelloWorld的class文件。你看一下你执行命令的目录下是否有HelloWorld.class文件,没有的话需要javac编译一下才可以生成这个文件。还有一种可能是大小写不一样

    2019-07-22
  • 佛系编程人
    老师,为什么我运行java HelloWorld 的时候出现:“找不到或无法加载主类HelloWorld”这个问题呢?

    作者回复: 你这个错误应该是和之前同学遇到的是一样的。错误是指在当前目录找不到HelloWorld的class文件。你看一下你执行命令的目录下是否有HelloWorld.class文件,没有的话需要javac编译一下才可以生成这个文件。还有一种可能是大小写不一样

    2019-06-23
  • 👀
    重磕基础,突然发现IDE用多了已经不会记事本了

    作者回复: 可以不用,不可不会哦

    2019-06-17
  • 🍋🍋
    老师您好请问这是什么原因啊
    线程 "main" 中发生异常java.lang.NoClassDefFoundError: HelloWorld
    Caused by: java.lang.ClassNotFoundException: HelloWorld
            at java.net.URLClassLoader.findClass(URLClassLoader.java:434)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:660)
            at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:358)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:626)
    Could not find the main class: HelloWorld. Program will exit.

    作者回复: 错误是指找不到HelloWorld的class文件。你看一下你执行命令的目录下是否有HelloWorld.class文件,没有的话需要javac编译一下才可以生成这个文件。还有一种可能是大小写不一样

    2019-06-12
收起评论
看过的人还看
SQL必知必会

陈旸  清华大学计算机博士

49讲 | 10242 人已学习

拼团 ¥79 原价 ¥99
Java核心技术面试精讲

杨晓峰  前Oracle首席工程师

43讲 | 43372 人已学习

¥99
趣谈网络协议

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

51讲 | 39734 人已学习

拼团 ¥79 原价 ¥99
MySQL实战45讲

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

48讲 | 43504 人已学习

拼团 ¥79 原价 ¥99