命令行运行 Java 程序时遇到了几个问题:

  1. javac 命令编译时报错:编码GBK的不可映射字符。
  2. javac 命令编译时报错:找不到符号。
  3. java 命令运行时报错:找不到或无法加载主类。

我可以确认代码是没有问题的,Java 配置环境也是没有问题的。

每个人出现问题的原因可能不同,下面是我出现这几个错误的原因以及解决方法,用以参考:

编码GBK的不可映射字符

解决方法:javac 命令后添加 -encoding UTF-8 。如下:

javac -encoding UTF-8 文件名

找不到符号

错误原因: 程序有多个文件,并且在主程序中创建了其他类的实例,而编译时命令中只有主程序,导致编译器无法识别主程序中用到的其他类。

解决方法: 同时编译所有 Java 源代码文件。如下:

javac -encoding UTF-8 *.java

命令含义是编译当前文件夹下所有后缀为 ".java" 的文件。

找不到或无法加载主类

错误原因: 通常 Java 文件第一行都是包名,编译没有问题,但如果在 Java 文件所在目录执行 java 命令运行程序,就会报这个错误。

解决方法: 需要退至包所在的文件夹下运行。假设包所在文件夹是 dir,包名是 com,那么需要退至 dir 文件夹,执行如下命令:

java com.主类名

注意:需要写明完整的包结构。