问题原因:使用命令行参数的方式向main方法传递参数,编译后在当前目录执行后报错:
错误: 找不到或无法加载主类
package com.skjt.demo;
public class Case {
public static void main(String[] args) {
System.out.println("package name is : com.skjt.demo");
}
}
D:\base01\src\com\skjt\demo>javac Case.java
D:\base01\src\com\skjt\demo>java Case
错误: 找不到或无法加载主类 Case
使用简单的例子说明一下,这是一种解决方法:
首先需要看类是否有包名
-
如果类没有package语句: 比如自己新建了一个java文件,然后 javac 编译,
.class文件和.java文件在同一目录下
,这种情况可以直接java ClassName
-
有包名,如:
com.skjt.demo.ClassName
,这种编译后会出现 错误: 找不到或无法加载主类 ClassName-
首先编译后的文件在
D:\base01\src\com\skjt\demo
路径下 -
需要在包名
com.skjt.demo
上一级目录src
下使用全限定类名com.skjt.demo.ClassName
执行java ClassName
命令-
D:\base01\src>java com.skjt.demo.Case package name is : com.skjt.demo
-
-