像这样的问题有很多,但我已经尝试了该网站上所有问题的答案,但到目前为止没有任何效果。
我正在使用Eclipse
并尝试启动以下 Main.java
在文件夹test
内使用Ctrl+F11
:
package test;
public class Main {
public static void main(String[] args) {
System.out.println("Hello world!");
}
}
我收到以下错误:Error: Could not find or load main class test.Main
.
这是我的.classpath
文件。 请注意,这不是此文件的问题(或者至少不仅仅是此文件造成的),因为我创建了一个名为 MainProject2
的新项目与相同的Main
文件,我复制了以下 .classpath
进入MainProject2
,这不会破坏该项目的主文件。
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry excluding="src/" kind="src" path=""/>
<classpathentry kind="src" path="src"/>
<classpathentry combineaccessrules="false" kind="src" path="/ProjA"/>
<classpathentry combineaccessrules="false" kind="src" path="/ProjB"/>
<classpathentry combineaccessrules="false" kind="src" path="/ProjC"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
<classpathentry kind="lib" path="/home/myusername/workspace/ProjE/lib/guava-16.0.jar"/>
<classpathentry kind="lib" path="/home/myusername/workspace/ProjD/lib/commons-collections4-4.0.jar"/>
<classpathentry kind="lib" path="/home/myusername/workspace/ProjD/lib/commons-configuration-1.9.jar"/>
<classpathentry kind="lib" path="/home/myusername/workspace/ProjD/lib/commons-lang-2.6.jar"/>
<classpathentry kind="lib" path="/home/myusername/workspace/ProjD/lib/commons-logging-1.1.1.jar"/>
<classpathentry kind="lib" path="/home/myusername/workspace/ProjD/lib/mysql-connector-java-5.1.17-bin.jar"/>
<classpathentry kind="lib" path="/home/myusername/workspace/ProjD/lib/opencsv-2.3.jar"/>
<classpathentry combineaccessrules="false" exported="true" kind="src" path="/ProjF"/>
<classpathentry combineaccessrules="false" kind="src" path="/ProjD"/>
<classpathentry kind="output" path="bin"/>
</classpath>
在我的Run Configurations -> ClassPath -> User Entries
下,会显示MainProject (default classpath)
(注意:该项目的名称是MainProject
,所以应该是正确的)。我正在使用JavaSE-1.7
我在每个项目中都使用它。 Main
Run Configurations
内的选项卡似乎是正确的。它说Project: MainProject
, Main Class: test.Main
。此处所有三个复选框均未选中。
该项目是 Java
项目并有 J
在 Package Explorer 中位于其上方。我是从SVN
查出来的(我是上传它并运行主要方法的人)。
我尝试过清理和刷新项目、重新启动 Eclipse、删除并重新创建 Main.java
但还没有任何效果。我还尝试手动执行 Run As -> Run As Java Application
,这是行不通的。我也尝试过以不同的名称来使用同一个类 Main.java
(例如 RandomTest.java
)。我还尝试从工作区中删除该项目并重新导入它。另外,对于我的Eclipse
来说并不是根本问题。因为我可以使用相同的 Main
创建一个新项目(作为项目中唯一的 .java
文件)并且它将毫无问题地编译。
我还从 CMD 尝试了以下操作:
user@place:~$ javac /home/user/workspace/MainProject/src/test/Main.java
user@place:~$ java /home/user/workspace/MainProject/src/test/Main
Exception in thread "main" java.lang.NoClassDefFoundError: /home/user/workspace/MainProject/src/test/Main
Caused by: java.lang.ClassNotFoundException: .home.user.workspace.MainProject.src.test.Main
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
Could not find the main class: /home/user/workspace/MainProject/src/test/Main. Program will exit.
最佳答案
进入Main
类所在目录,然后按如下方式编译:
使用-d
选项进行编译,以便类最终位于适当的目录层次结构中:
javac -d . Main.java
然后使用以下命令运行该类:
java test.Main
关于java - Eclipse 错误, "Could not find or load main class test.Main",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21508913/