问题一:javac编译java文件时,提示 编码GBK的不可映射字符
附:举例java代码
package com.test.c2;
public class Test {
private static final String PREFIX = "Hello";
public static void main(String[] args) {
System.out.println(PREFIX+" World!");
// 我做个中文注释
System.out.println(PREFIX+" 小明!");
}
}
javac Test.java 返回上述错误
问题原因:java是英文编译环境,遇到中文字符时,编译会出现乱码。
解决方案一:统一编码方式
javac -encoding UTF-8 Test.java
解决方案二:转换java文件的编码 为 ANSI,然后再编译
上面是用EditPlus转换的。
问题二:java 运行class文件时,提示 错误: 找不到或无法加载主类 Test
问题原因:代码中包含了 package 包的路径,而编译的时候生成的class文件是与java文件 在同级目录下
解决方案一:将class文件放置在 与package路径下
一层一层创建文件夹?tan 90°
只需要在编译的时候加入特定参数就好
javac -d . Test.java
这样就能自动生成目录了,注意 -d后有一个空格,"."后也有一个空格。
如果既要utf8编译,又要规定包路径下生成class文件怎么办?
javac -encoding UTF-8 -d . Test.java
组合使用即可。