这边提供一个关于程序中含有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