一 概述
CMD
D:\Project\Computer-Science-And-Technology\writeExam\farben\src\com\GC>java CommandLineParameter
错误: 找不到或无法加载主类 CommandLineParameter
IDEA
D:\Project\Computer-Science-And-Technology\writeExam\farben\src\com\GC>java CommandLineParameter
错误: 找不到或无法加载主类 CommandLineParameter
二 问题分析&解决方法
JDK问题排除:
javac

java

根据上述截图可以排除JDK问题,猜测是IDEA中Terminal的问题,可是使用CMD出现的结果一样,所以排除这些问题,最后问题真正的原因是IDEA中项目java源代码都会使用package指定包路径。
package src.com.GC;
public class CommandLineParameter {
public static void main(String[] args) {
System.out.println(args);
for (String s:args) {
System.out.println(s);
}
}
}
因为我们的类中含有了包路径package src.com.GC,所以我们需要将javac编译生成class文件放入package指定的目录结构中。
javac -d . CommandLineParameter.java // -d表示生成package指定的目录结构 .表示生成的目录结构保存在当前目录
java src.com.GC.CommandLineParameter // 执行package指定的目录结构中的程序
D:\Project\Computer-Science-And-Technology\writeExam\farben\src\com\GC>javac -d . CommandLineParameter.java
D:\Project\Computer-Science-And-Technology\writeExam\farben\src\com\GC>java src.com.GC.CommandLineParameter
[Ljava.lang.String;@15db9742
三 排除包问题
public class Test{
public static void main(String[] args) {
System.out.println(args);
for (String s:args) {
System.out.println(s);
}
}
}
Test.java是不好含有package声明的java源文件
D:\Project\Computer-Science-And-Technology\writeExam\test>javac Test.java
D:\Project\Computer-Science-And-Technology\writeExam\test>java Test
[Ljava.lang.String;@15db9742
当java源文件中不存在包的时候就不用执行javac 编译后的包目录了。
本文深入分析了在IntelliJ IDEA和CMD环境下加载Java类时遇到的常见错误,即“找不到或无法加载主类”。文章详细解释了问题原因在于IDEA项目中Java源代码的包路径与类加载路径不匹配,并提供了具体的解决方案,包括如何正确使用javac编译和java命令执行带包路径的Java类。
1万+

被折叠的 条评论
为什么被折叠?



