命令行运行 Java 程序时遇到了几个问题:
javac
命令编译时报错:编码GBK的不可映射字符。javac
命令编译时报错:找不到符号。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.主类名
注意:需要写明完整的包结构。