使用JDEE从emacs内部运行Java应用程序会抛出NoClassDefFoundError

时间:2011-03-31 15:24:37

标签: java emacs jde

我在emacs中配置了JDEE。但是当我尝试运行任何App时,它会抛出NoClassDefFoundError。 在编译时,虽然创建了一个类文件,但它只显示缓冲区一段时间然后关闭它。

如果编译并从终端运行相同的文件工作完全正常。

另外,在这台机器上我安装了java-6-openjdk。我在我的家用电脑上配置了JDEE,它有sun java jdk,那里没有这样的问题。

除此之外,代码完成,生成等功能也能正常工作。

我该如何解决这个问题?这是由于打开jdk?

我使用的是Ubuntu 10.04桌面。

这是堆栈跟踪

cd /home/vineet/java/KodeJava/src/org/kodeplay/kodejava/
/usr/lib/jvm/java-6-openjdk/bin/java org.kodeplay.kodejava.EmacsTest

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

Process org.kodeplay.kodejava.EmacsTest exited abnormally with code 1

由于

2 个答案:

答案 0 :(得分:0)

从问题来看,在设置运行Java App时要启动的命令时,听起来似乎JDEE配置不完整。

如果可以从终端运行相同的Java App而没有任何问题,OpenJDK不会造成麻烦,我打赌。

也许您从其他计算机上复制了JDEE配置,并没有将它们用于具有OpenJDK的新计算机。

答案 1 :(得分:0)

配置中的某些内容是错误的。你试图从“/ home / vineet / java / KodeJava / src / org / kodeplay / kodejava /”目录运行,但为了在类路径上找到你的类,你应该从“/ home / vineet /”运行爪哇/ Ko​​deJava / src目录/”。可能需要配置“jde-run-working-directory”变量。