
正文
java代码中文编译错误 java编译不了中文
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
java语言中什么叫做编译错误
就是你用javac命令将源代码(.java)文件翻译成字节码(.class)文件时产生的错误。
比如,变量名不符合规定,变量没定义,关键字拼写错误等等。。。
java的编译器(javac)会根据java语法规定做一些检查,不符合规定的就不通过编译。
编译错误,是相对于运行时错误而言的。
运行时错误,是你用java命令运行时会出现的错误,一般会抛出异常。
相关问答
Q1: Java编译错误:找不到符号
说明代码中有中文字符,或者是括号不是对称的导致的,可以参考下以下入门代码:
// 一个文件中只能有一个共有的类,并且与文件名称一致,大小写注意
public class HelloWorld{
// 程序的入口
public static void main(String args[]){
// 向控制台输出信息
System.out.println("欢迎java01班的同学");
}
}
Q2: 如何解决java编译时编码问题造成的错误
Java源码文件这些文件可以是任意字符编码的,在Java的Class文件里存储的字符串是UTF-8编码的,所以如果在代码中有中文字符的话,就会导致乱码。当然,这只是众多原因中的一种,所以把编码设置统一是避免出现乱码的解决办法。
工具:
eclipse
方法如下:
点击window--Preferences
选择General--WorkSpace,选择Default(GBK)即可
附:也可以选择Other,从Other中选择程序需要的编码格式。
Q3: notepad++ java编码,输出中文字符时,编译出错,如图,
由于JDK是国际版的,在编译的时候,如果我们没有用 -encoding
参数指定我们的JAVA源程序的编码格式,则javac.exe首先获得我们操作系统默认采用的编码格式,也即在编译java程序时,若我们不指定源程序文件的编码格式,JDK首先获得操作系统的file.encoding参数(它保存的就是操作系统默认的编码格式,如WIN2k,WIN7,它的值为GBK),然后JDK就把我们的java源程序从file.encoding编码格式转化为JAVA内部默认的UNICODE格式放入内存中。然后,javac把转换后的unicode格式的文件进行编译成.class类文件,此时.class文件是UNICODE编码的,它暂放在内存中,紧接着,JDK将此以UNICODE编码的编译后的class文件保存到我们的操作系统中形成我们见到的.class文件。对我们来说,我们最终获得的.class文件是内容以UNICODE编码格式保存的类文件,它内部包含我们源程序中的中文字符串,只不过此时它己经由file.encoding格式转化为UNICODE格式了。当我们不加设置就编译时,相当于使用了参数:javac
-encoding gbk XX.java,当然就会出现不兼容的情况。
解决办法是:应该使用-encoding参数指明编码方式:javac -encoding UTF-8 XX.java
获取系统默认编码:
System.out.println("Default Charset=" + Charset.defaultCharset()); System.out.println("file.encoding=" + System.getProperty("file.encoding")); System.out.println("Default Charset in Use=" + FileTools.getDefaultCharSet()); public static String getDefaultCharSet() { OutputStreamWriter writer = new OutputStreamWriter(new ByteArrayOutputStream()); String enc = writer.getEncoding(); try { writer.close(); } catch (IOException e) { e.printStackTrace(); } return enc; }
使用的时候最好是统一的格式,比如java文件保存格式也同样为 UTF-8 格式的
在命令行的中使用时先设置一个java变量
set JAVA_TOOL_OPTIONS=-Dfile.encoding=utf-8 -Duser.language=en -Duser.country=US
通过命令行对JAVA文件进行编译
javac -d ../ *.java
这样生成出来的.CLASS文件格式也同样为 UTF-8 编码的
同样在执行java或者jar包前,要设置一个临时的或者永久的变量
set JAVA_TOOL_OPTIONS=-Dfile.encoding=utf-8 -Duser.language=en -Duser.country=US
这样才可以保证你的程序在运行java时,使用的是UTF-8编码格式
Q4: java编译中总是显示中文的地方错误,文本格式是ANSI格式,不知道为啥?
你初始化对象的方法写错了,构造方法里面只有一个参数name,你直接写字符串的值就行,不需要将参数名也写进去
java代码中文编译错误的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java编译不了中文、java代码中文编译错误的信息别忘了在本站进行查找喔。







