Textmate 破坏了我的 Java?线程“main”中的异常java.lang.NoClassDefFoundError
我在 OS X 上使用 TextMate 运行过一次 Java 程序,但我无法再在其他任何地方使用 Java。
在最简单的程序中,我得到:
线程“main”中出现异常 java.lang.NoClassDefFoundError: 网关(名称错误: org/mcgill/电信/网关)
我是否使用 javac -classpath 。 Gateway.java、java -classpath 。 Gateway 或 Eclipse 或 Netbeans。
完全相同的程序仍然可以使用 cmd-R 在 TextMate 中运行,但不能在其他地方运行。
我的 Java 发生了什么?
I ran a Java program using TextMate on OS X once and I can't use Java anywhere else anymore.
On the simplest program, I get:
Exception in thread "main"
java.lang.NoClassDefFoundError:
Gateway (wrong name:
org/mcgill/telecom/Gateway)
Whether I use javac -classpath . Gateway.java, java -classpath . Gateway
or Eclipse or Netbeans.
The exact same program can still run in TextMate using cmd-R, but nowhere else.
What happened to my Java?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我非常怀疑文本编辑器是否做到了这一点。
无论如何,java -classpath 。如果该类位于
org.mcgill.telecom
包中(文件夹结构表明),则 Gateway 将无法工作。尝试 java -classpath 。 org.mcgill.telecom.Gateway 而不是可以看到
org
文件夹的文件夹。您可以执行以下操作来测试它。
temp
文件夹并创建此文件夹结构:org/mcgill/telecom
;telecom
文件夹中创建一个名为Gateway.java
的文件;Gateway.java
文件中;temp
文件夹;这是我得到的:
这里是网关类:
I highly doubt that a text editor did that.
Anyway,
java -classpath . Gateway
wouldn't work if that class is in the packageorg.mcgill.telecom
(which the folder structure suggests).Try
java -classpath . org.mcgill.telecom.Gateway
instead from the folder where theorg
folder can be seen.Here's what you can do to test it.
temp
folder and create this folder structure:org/mcgill/telecom
;Gateway.java
in thetelecom
folder;Gateway.java
file;temp
folder;javac org/mcgill/telecom/Gateway.java
java -classpath . org.mcgill.telecom.Gateway
This is what I get:
Here the Gateway class: