我有Windows 7,安装了jdk1.7.0及其支持的jre7 我的问题是编译部分工作正常,但在运行Java程序时我得到这个错误说:
“无法找到或加载主类”
我将所有程序存储在javalab文件夹中。我已经设定了它的路径。程序如下所示:
C:\Users\user>cd\ C:\>cd javalab C:\javalab>autoexec.bat C:\javalab>set path=C:\Program Files\Java\jdk1.7.0\bin C:\javalab>javac p1.java C:\javalab>java p1 Error: Could not find or load main class p1 C:\javalab>
答案 0 :(得分:28)
我的第一个java程序遇到了类似的问题。
我发出了这个命令
java HelloWorld.class
导致同样的错误。
原来你需要排除.class
java HelloWorld
答案 1 :(得分:12)
尝试:
java -cp . p1
当我遇到同样的问题时,这对我有用,使用Fedora(linux)
答案 2 :(得分:9)
编译和执行java文件的简单方法。(HelloWorld.java不包含任何包)
set path="C:\Program Files (x86)\Java\jdk1.7.0_45\bin"
javac "HelloWorld.java"
java -cp . HelloWorld
pause
答案 3 :(得分:6)
javac应该知道在哪里搜索课程。试试这个:
javac -cp . p1.java
您不需要指定classpath。你确定文件p1.java存在吗?
答案 4 :(得分:4)
我有几乎相同的问题,但有以下变化:
这是非常奇怪的行为,我无法完全理解它。 希望它会对某人有所帮助。太
答案 5 :(得分:3)
我猜您在p1.java
答案 6 :(得分:3)
首先检查您的班级名称。根据您的批处理文件说明,它应该是p1。然后检查该类的包,如果它在任何包中,请指定何时运行。
如果包是x.y
java x.y.p1
答案 7 :(得分:3)
经过多次故障排除后,这是我工作的env路径变量
CLASSPATH
。; C:\ Program Files(x86)\ Java \ jre7 \ lib \ ext \ QTJava.zip; C:\ Program Files(x86)\ Java \ jdk1.6.0_27 \ bin
PATH< ---有时这条道路填满了太多的路径,你无法添加路径(这是我的情况!)
bunchofpaths; C:\ Program Files(x86)\ Java \ jdk1.6.0_27 \ bin
此外,当您尝试使用cmd执行文件时...请确保您在本地目录中作为您尝试执行的文件(您已执行此操作。)
对于仍有这个问题的人来说,只是一个小清单。
答案 8 :(得分:2)
我遇到过类似的问题。如果您使用Eclipse,则需要转到您拥有src /文件夹的文件夹...如果您使用了包 - 那么您可以使用
javac -cp . packageName/className
这意味着如果您有一个名为def的包和名为TextFrame.java的主类,那么您将编写
javac -cp . def/TextFrame
省略尾随.java扩展名,然后使用
运行它java def/TextFrame
如果你有参数,那么你需要为它提供与你的程序相对应的参数。 我希望这能有所帮助。
答案 9 :(得分:1)
首先,将您的文件*.class
(例如Hello.class
)放入1个文件夹(例如C:\java
)。然后尝试命令并键入cd /d C:\java
。现在你可以输入“java Hello”了!
答案 10 :(得分:1)
您可能已经添加了CLASSPATH环境变量!!
使用以下内容以避免在-cp .
java -cp . CLASSFILE
添加。到系统属性中的CLASSPATH->环境变量或cmd
set CLASSPATH=%CLASSPATH%;.;
答案 11 :(得分:1)
我在Eclipse中遇到了类似的问题。每当我点击“运行”按钮时,它都会给我一条消息:“错误:无法找到或加载主类”。但是当我右键单击项目资源管理器中的java文件和Run As Java配置时,它完美地运行。
我认为这是因为它默认尝试在导致问题的其他配置中运行它。
希望这个答案有所帮助。
答案 12 :(得分:1)
如果要使用命令行编译单个.java文件,请删除 从代码中最顶层的包部分,再次编译,它将起作用。
这对我有用。
答案 13 :(得分:0)
有时可能导致问题的原因与主类无关。我不得不以困难的方式找到它,它是我移动的引用库,它给了我:
无法找到或加载主类xxx Linux
我只是删除了该引用并再次添加,它再次正常工作。
答案 14 :(得分:0)
我有
':'
在我的项目名称中,例如'HKUSTx:part-2' 重命名'HKUSTx-part-2'为我工作
答案 15 :(得分:-2)
您可以使用免费下载的NetBeans IDE并使用“开源”。您甚至可以在此IDE中执行其他编程语言。最新的支持HTML5。这使您的编程更容易。如果您不熟悉它,请选择一个集成了NetBeans的书籍,如Sams Teach Yourself Java in 24 Hours