我在将外部.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
有人能帮我弄清楚出了什么问题吗?
答案 0 :(得分:2)
在stacktrace中,这一行看起来很奇怪
线程“main”中的异常java.lang.NoClassDefFoundError:Timing
默认包中的java搜索Timing
似乎不在timing
包中。检查这一刻。
2如何运行此代码?来自Eclipse? 如果是,请检查此运行的Eclipse运行配置。可能是您将类文件夹添加到构建路径但不添加它启动类路径。
答案 1 :(得分:1)
我假设您从第三方获取.class
文件,或者您要包含这些来源。处理它的最简单方法可能是要求它们将它包装在JAR中,或者自己打包 - Java开发工具几乎普遍用于处理JAR而不是原始类文件。