作者回复: 首先,这个问题不大,不会影响我们后面的学习,不要慌。以后我们使用 IDE 编程,就不会有这个问题了。
这个是因为字符集编码设置的问题。如果你用的是Windows自带的notepad,需要先检查一下的Windows设置的区域和语言设置。这是Windows7里设置的办法
https://jingyan.baidu.com/article/3052f5a10bf44297f21f8645.html
需要先设置成中国
这个是Windows10的设置方式
https://jingyan.baidu.com/article/456c463b4df85b0a583144ac.html
同样设置成中国
完全关闭编辑器,然后重新打开(这个很重要,如果求放心,可以重启一下系统)。用编辑器打开源文件,看一下源文件里的字符是否已经是乱码。如果是乱码,重新输入想要的字符。保存源文件(很重要,一定要保存),然后再打开,看看是否字符正常显示。
重新开启一个CMD窗口(这个很重要),再试一次看看行不行。
如果不行,可以重启再试一次。如果还是不行,打开一个CMD窗口,鼠标单击左上角的图标,在弹出菜单里选择“属性”,然后在弹出的窗口选择“选项”页,看一下最下面的当前代码页那个区域是不是 简体中文 GBK。如果是,应该就是源代码编辑器的编码不对。否则,应该是系统语言没有设置成中文。
最后再补充一句。因为大家的环境都不相同,所以后面的内容都是基于统一的IDE和统一的编码进行讲解的,不会有字符编码的问题。
作者回复:
现在JDK的版本在Windows和Mac上都不用手动配置classpath。上面这个配置的作用是把当前路径算到classpath里。现在的java命令都会把当前目录算在classpath里的。如果是报错class not found的话,按照这样配置,一下大概率是解决不了问题的。
当然这样配置也没错,但是记得同样要注意如视频中那样配置好JAVA_HOME环境变量。
以现在的JDK和操作系统来说, class not found最大的可能还是没有在当前目录生成class文件。
作者回复: 对的,都是 IntelliJ。作为曾经的 eclipse 插件开发工程师,我很负责的说现在如果推荐大家用 eclipse 是很不负责的行为。我已经好几年没有碰过eclipse了,而且一点都不怀念。 IntelliJ 秒杀 + 全面碾压 eclipse 以及其生态系统
作者回复: 我来复盘一下,首先应该是javac没有执行或者执行失败,导致class文件没有生成。
解决方式是你用javac HelloWorld.java编译源代码并生成class文件。
你现在执行的class文件应该是我编译上传的。应该是你安装的JDK版本和我当时编译class文件的版本不一致,所以会出现这个问题。
这个错误翻译成人话就是:java命令说,你这个class文件太新了,臣妾不认识……
应该是我当时手抖用了java12 ...
作者回复:
这个应该是JDK没有安装成功,或者PATH没有设置成功。javac命令是在安装的JDK目录的bin下面的,把这个bin目录增加到path里,重启一下命令行窗口(就是cmd命令),就可以用javac了。
作者回复: 可以先尝试把claas文件删除,然后重新生成一下,再执行一下试试看。如果还是不行,贴出执行的命令看一下,如果生成class文件的话,执行下面的命令应该是可以的:
java HelloWorld
作者回复: 稳住不慌,可能和执行命令的目录有关系,也有可能和大小写有关系。
先执行dir命令,看看当前目录有什么文件。看看输出内容里有没有HelloWorld.java。有的话执行javac 和java,如果还有问题,把整个命令行的输出贴过来看看。
作者回复: 可以先用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
作者回复:
https://docs.oracle.com/javase/8/ 左上角可以选版本。最老的已经是7。6的文档官方都已经没有了
作者回复:
这个应该是没有执行javac命令编译自己的class文件。可以按照视频上的步骤,执行一下javac命令,重新生成一次class文件。
作者回复:
"系统提示无法识别我的Java文件"是什么错误输出?
作者回复: 错误是指找不到HelloWorld的class文件。你看一下你执行命令的目录下是否有HelloWorld.class文件,没有的话需要javac编译一下才可以生成这个文件。还有一种可能是大小写不一样
作者回复: 你这个错误应该是和之前同学遇到的是一样的。错误是指在当前目录找不到HelloWorld的class文件。你看一下你执行命令的目录下是否有HelloWorld.class文件,没有的话需要javac编译一下才可以生成这个文件。还有一种可能是大小写不一样
作者回复: 可以不用,不可不会哦
作者回复: 错误是指找不到HelloWorld的class文件。你看一下你执行命令的目录下是否有HelloWorld.class文件,没有的话需要javac编译一下才可以生成这个文件。还有一种可能是大小写不一样