如何在eclipse中使用外部.class文件?

时间:2012-08-18 19:12:21

标签: java eclipse class classpath

我在将外部.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文件夹作为类文件夹添加到构建路径中。在构建路径窗口的“订购和导出”选项卡中,我已将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

有人能帮我弄清楚出了什么问题吗?

2 个答案:

答案 0 :(得分:2)

  1. 在stacktrace中,这一行看起来很奇怪

    线程“main”中的异常java.lang.NoClassDefFoundError:Timing

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

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

答案 1 :(得分:1)

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