1

我在安装了 OpenJDK 7 的 Ubuntu 12.04 上使用 Eclipse 3.7.2

java -version 给出

java version "1.6.0_24"
OpenJDK Runtime Environment (IcedTea6 1.11.1) (6b24-1.11.1-4ubuntu3)
OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode)

每当我尝试运行一个项目时,我都会收到以下错误。

Exception in thread "main" java.lang.NoClassDefFoundError: test/Example
Caused by: java.lang.ClassNotFoundException: test.Example
    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: test.Example. Program will exit.

我在 Windows 系统上成功编译的所有项目都会发生这种情况。而且,当直接从终端使用 javac 和 java 时,它可以工作。有简单的解决方案吗?这是因为 OpenJDK 吗?

类代码是:

package test;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;

public class Example extends JFrame {

    /**
     * 
     */
    private static final long serialVersionUID = 1L;

    public Example() {
       setTitle("Simple example");
       setSize(300, 200);
       setLocationRelativeTo(null);
       setDefaultCloseOperation(EXIT_ON_CLOSE);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                Example ex = new Example();
                ex.setVisible(true);
            }
        });
    }
}

更新:我的源代码位于名为 swingtest 的文件夹中。在调试时,我发现 Eclipse 使用源的类路径作为 swingtest/swingtest/src/test/ 而不是 swingtest/src/test/ 。这可以纠正吗?

4

2 回答 2

1

由于以下原因,可能会发生此错误

  1. 可能缺少依赖项/必需的 jar。要查找 jar 是否丢失,请单击顶部的 project->Java Build Path->source,您会看到一条错误消息 xyz.jar is missing。因此,通过单击添加外部 jars 选项添加特定的 jar

  2. 可能是java类路径没有设置。因此,在 Eclipse 和环境设置中配置 JDK 类路径

  3. 尝试清理项目并查看其是否已纠正

于 2014-07-15T19:57:28.427 回答
-1

右键单击您的项目并选择构建路径 > 配置构建路径。单击源选项卡并选择添加文件夹。然后将其指向您的 swingtest 文件夹。您可以删除 Eclipse 正在使用的当前默认值

于 2012-07-09T08:53:09.453 回答