【问题标题】:Running Java app from inside emacs using JDEE throws NoClassDefFoundError使用 JDEE 从 emacs 内部运行 Java 应用程序会引发 NoClassDefFoundError
【发布时间】:2011-03-31 15:24:37
【问题描述】:

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

如果从终端编译和运行相同的文件,则可以正常工作。

另外,在这台机器上我安装了 java-6-openjdk。我已经在装有 sun java jdk 的家用计算机上配置了 JDEE,并且那里没有此类问题。

除此之外,代码完成、生成等功能都可以正常工作。

我该如何解决这个问题?这是因为打开 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

谢谢

【问题讨论】:

  • 你能发布整个堆栈跟踪吗?
  • 使用堆栈跟踪编辑了问题

标签: java emacs jde


【解决方案1】:

您的配置中有问题。您正在尝试从“/home/vineet/java/KodeJava/src/org/kodeplay/kodejava/”目录运行,但是为了在类路径中找到您的类,您应该从“/home/vineet/”运行java/KodeJava/src/”。可能需要配置“jde-run-working-directory”变量。

【讨论】:

  • 是的,在配置 jde-run-working-directory 后它现在可以工作了。但似乎每次我在项目之间切换时都必须重新配置。有没有办法避免这种情况?我不记得在我的家用电脑上做过这样的事情。反正回国后会再查。非常感谢!
  • 您可以设置 jde 项目支持,以便它根据文件关联的项目适当地设置这些变量。
【解决方案2】:

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

如果可以从终端运行相同的 Java 应用程序而没有问题,我敢打赌,OpenJDK 不会造成问题。

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

【讨论】:

    猜你喜欢
    • 2011-05-24
    • 1970-01-01
    • 1970-01-01
    • 2012-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多