1

我在将外部 .class 文件导入 Eclipse 项目时遇到问题。我已经阅读了大多数相关问题,但没有一个答案对我有用。这是我的项目的以下代码:

import java.lang.management.ManagementFactory;
import java.lang.management.ThreadMXBean;
import timing.Timing;

public class Test {
    public static void main(String[] args){
        int seed = 518406;
        long begin = 0;
        long end = 0;
        ThreadMXBean bean = ManagementFactory.getThreadMXBean();

        for(int i = 1; i < 10000; i=i*2){
            begin = bean.getCurrentThreadCpuTime();
            Timing.trial(i, seed);
            end = bean.getCurrentThreadCpuTime();
            System.out.println(i + ": " + (end - begin) + "ns");
        }
    }

}

我通过将 Timing.class 文件放在 /lib/timing/Timing.class 中进行导入,并将 lib 文件夹作为类文件夹添加到构建路径中。在构建路径窗口的 Order and Export 选项卡中,我已将 lib 文件夹移至顶部并进行了检查。

运行上面的代码时,出现以下异常:

Exception in thread "main" java.lang.NoClassDefFoundError: Timing
        at Test.main(Test.java:14)
Caused by: java.lang.ClassNotFoundException: Timing
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    ... 1 more

谁能帮我弄清楚出了什么问题?

4

2 回答 2

2
  1. 在堆栈跟踪中,这条线看起来很奇怪

    线程“主”java.lang.NoClassDefFoundError 中的异常:计时

似乎Timing默认包中的 java 搜索不在timing包中。检查这一刻。

2 你如何运行这段代码?来自 Eclipse?如果是这样,请检查此启动的 Eclipse 运行配置。可能是您将类文件夹添加到构建路径但不添加它启动类路径。

于 2012-08-18T19:29:43.813 回答
1

我假设您是.class从第三方获取文件,或者您将包括来源。处理它的最简单方法可能是要求他们将其封装在 JAR 中,或者自己打包——Java 开发工具几乎普遍设计用于处理 JAR,而不是原始类文件。

于 2012-08-18T19:31:10.923 回答