jvm - (java)找不到主类

标签 jvm java

我的代码在 OSX 上编译并且运行良好(编译器版本 1.6)。但是当我将它复制到远程ubuntu时。我无法运行它。

当我运行时

java TPCC.class

我遇到了这样的异常。(顺便说一下 TPCC.class 在默认包中)

Exception in thread "main" java.lang.NoClassDefFoundError: TPCC/class
Caused by: java.lang.ClassNotFoundException: TPCC.class
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
Could not find the main class: TPCC.class.  Program will exit.

以及我在 ubuntu 上的 java 版本:

java version "1.6.0_21"
Java(TM) SE Runtime Environment (build 1.6.0_21-b06)
Java HotSpot(TM) Client VM (build 17.0-b16, mixed mode, sharing)

它也是 1.6,我认为它适合编译的二进制文件。我该如何解决这个问题?

最佳答案

问题出在你运行程序的方式上。编译后的java调用

ClassName.java

将是ClassName.class。你应该像这样运行它

"java ClassName"

。您不应该将其运行为

"java ClassName.class"

这里发生的事情是这样的。当您将其作为 java ClassName.class 运行时,JVM 会尝试在名为“ClassName”的包中查找不存在的名为“class”的 ClassName。所以它会抛出NoClassDefFoundError。

关于jvm - (java)找不到主类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11574022/

相关文章:

java - 如何使用 winrun4j 创建 Windows 服务

java - Glassfish 嵌入式无法部署 EJB 模块

java - Mockito-调用真实方法

java - s 在 Java 中占用 3 个字节吗?当: String s = "abc"; Java

c++ - 'Chunk * _chunk = new (size) Chunk(size)' 是什么意思?

jvm - 配置 VisualVM 以可视化多个 JVM

java - 创建大十进制对象时出错

java - KeyAdapter 没有响应 ~ Java

java - 在另一台计算机上运行java项目时出现"A fatal error has been detected by the Java Runtime Environment"

java - JVM/JLS 中是否指定永远不会加载未使用代码路径中的类?