java - Eclipse 错误, "Could not find or load main class test.Main"

标签 java eclipse svn classpath

像这样的问题有很多,但我已经尝试了该网站上所有问题的答案,但到目前为止没有任何效果。

我正在使用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/

相关文章:

svn - 如何找出特定 subversion 修订版属于哪个分支?

java - RefreshingView 与 ListView 有何不同?

java.lang.UnsatisfiedLinkError : no lwjgl in java. 库路径

java - PHP/Java 套接字 - 奇怪的错误?

eclipse - 使用 Eclipse 将 Maven 与现有 Java 项目集成

Eclipse 未运行(即使安装了 JRE)

svn - 如何将两个 Subversion 提交合并为一个

java - 比较java中的int值?

java - 无法在我的另一台电脑上运行相同的 servlet/hibernate 项目

php - 开发环境 - 从开发到登台服务器再到生产的 VCS