编译及运行错误
一、编译及运行出错
在一次作业中,将java文件上传至Linux服务器,使用javac命令进行编译,之后用java命令运行编译文件,出现找不到主类,之后想在本地使用命令行运行查找问题,结果直接编译出错,故写下该篇文章记录问题。
1. 运行出错
java程序在Linux运行错误原因:java文件中带有包名,编译后的class文件应该放在该包下,使用以下命令运行。
1 |
|
2. 编译出错
- Java程序在编译的时候,需要使用JDK开发工具包中的JAVAC.EXE命令,而JDK开发工具包是国际版的,默认是对Unicode的编码格式的源文件进行编译操作。
- 因此其他编码格式的源文件需要先转为Unicode格式才能够进行编译。
- 在未指定源程序文件的编码格式的情况下,JDK会优先获取操作系统的file.encoding参数,然后JDK就把我们的JAVA源程序从file.encoding编码格式转化为JAVA内部默认的Unicode格式放到内存中。
- 如果源文件的编码格式不是file.encoding,就会出现乱码-不能够正确对应的中文而报错。
- javac把转换后的Unicode格式的文件进行编译成class类文件,此时.class文件是Unicode编码的,它暂放在内存中。之后,JDK将此以Unicode编码编译后的.class文件保存到操作系统中形成我们见到的.class文件。
解决方法:
- 将java文件以ASCII编码格式保存
- 使用以下命令进行java程序的编译
1 |
|
参考文章
编译及运行错误
https://pursuemilk.github.io/2022/11/16/编译及运行错误/