java文件中不含包名
这种情况比较简单
public class NoPackage{
public static void main(String[] args){
System.out.println("No package:");
System.out.println("current direction(cmdJava)");
System.out.println("javac NoPackage.java");
System.out.println("java NoPackage");
}
}
编译
javac NoPackage.java;
运行
java NoPackage
注意,编译时没有.java后缀的话,会报错误: 仅当显式请求注释处理时才接受类名称 'NoPackage'
1 个错误
注意:运行时多了.class后缀的话会报错误: 找不到或无法加载主类 NoPackage.class
error2.pngJava文件中含包名的话
这种情况容易出错,我们需要建立相关文件夹模拟包路径
我在cmdJava文件里需要新建site/yourdiary(嵌套文件夹)对应包路径,然后将java文件放在对应包路径的文件夹中
编译:javac site/yourdiary/HasPackage.java
运行:java site.yourdiary.HasPackage
package site.yourdiary;
public class HasPackage{
public static void main(String[] args){
System.out.println("has package:");
System.out.println("current direction(cmdJava)");
System.out.println("HasPackage.java is in cmdJava/site/yourdiary");
System.out.println("javac site/yourdiary/HasPackage.java");
System.out.println("java site.yourdiary.HasPackage");
}
}
pic2.png
注意:要把site/yourdiary像包一样对待,不要像没有包文件一样,直接编译运行,否则会出现编译成功了,但运行不成功;因为包路径对应着文件夹路径
package site.yourdiary
运行class文件夹时,会从当前路径出发找包路径对应的文件夹路径site/yourdiay路径加载执行里面的class文件。
常见错误
- 在编译器中写的java代码,在命令行中,编译运行有一种常见的错误 - “字符编码错误”
通常我们会将编译器调整为utf-8的编码集,而系统默认是GBK,当代码文件中有中文是就会报错,所以我们在命令行中编译的时候要指定编码集 如:
javac -encoding utf-8 site/yourdiary/demo4/HeapAlloc.java
总结:现在主要都是用IDEA和Eclipse这样的IDE中编写运行java文件了,很方便,
但是,有时需要命令行操作,我是因为编写的java文件 需要从命令行读入一段文字
段落的终止符在CMD命令行中crtl+z能实现。
网友评论