编译和运行java文件 找不到或无法加载主类

Posted Archibald Witwicky

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编译和运行java文件 找不到或无法加载主类相关的知识,希望对你有一定的参考价值。

这边提供一个关于程序中含有package关键字,使用“终端”运行程序时出现“找不到或无法加载主类”,而使用Eclipse软件可以正常运行程序的可能解决办法。

例如程序名为HelloWorldTest.java,程序中含有package helloWorld语句,而该包位于javatest目录下,即javatest/helloWorld/HelloWorldTest.java。

应该在java文件所在的目录运行javac指令,即在helloWorld目录中运行javac HelloWorldTest.java

再在包所在的上层目录中运行java指令,即在javatest目录中运行java helloWorld.HelloWorldTest

由于是在OS X环境下学习的java,对于classpath等的设置不太熟悉,可能此方法与部分答主所述为同一意思。



作者:顾志方
链接:https://www.zhihu.com/question/36537093/answer/206814470
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
 
 
https://www.cnblogs.com/Ring1981/p/6240412.html
//这个问题原因有以下几种,但是和环境变量并没有太大的关系
//能够执行java 和 javac 就证明你的环境变量已经配置好了,其实 classpath 可以不配置
//假如有如下文件:H:\\code\\Hello.java
public class Hello{
    public static void main(String[]args){
        System.out.println("Hello");
    }
}
//正确编译命令: javac Hello.java
//正确运行命令: java Hello
 
错误1:H:\\code>java Hello.java
错误: 找不到或无法加载主类 Hello.java
原因:命令错误
 
错误2:H:\\code>java Hello.class
错误: 找不到或无法加载主类 Hello.class
原因:命令错误
 
错误3:java 源文件带有包名,往往容易出错
如:H:\\code\\Hello2.java
package com.example;
 
public class Hello2{
    public static void main(String[]args){
        System.out.println("Hello2");
    }
}
这代码看上去没什么问题,执行:
H:\\code>javac Hello2.java
H:\\code>java Hello2
错误: 找不到或无法加载主类 Hello2
 
解决办法:
+.删除包名  或者 
+.在code 下创建一个与包名相同的文件结构(H:\\code\\com\\example\\Hello2.java)
  编译:H:\\code>javac com/example/Hello2.java
  运行:H:\\code>java com.example.Hello2

以上是关于编译和运行java文件 找不到或无法加载主类的主要内容,如果未能解决你的问题,请参考以下文章

编译和运行java文件 找不到或无法加载主类

Java代码运行错误-找不到或无法加载主类

MAC 找不到或无法加载主类怎么解决

mac编译java时生成class文件但运行时显示找不到或无法加载主类

错误:找不到或无法加载主类 Test.java

java无法找到或加载主类