【问题标题】:Java application fails to startJava 应用程序无法启动
【发布时间】:2012-06-11 02:10:10
【问题描述】:

我目前使用的是 Ubuntu 11.10 和 java SE 1.6.0_26。我正在尝试运行一个非常简单的“Hello World”应用程序。我将 java 文件 HelloWorld.java 放在 Home 文件夹中。我使用命令javac HelloWorld.java 编译它。我认为它可以工作,因为它没有显示任何编译错误并且创建了 HelloWorld.class

当我输入命令 java HelloWorld 时,我有这个错误:

Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld
Caused by: java.lang.ClassNotFoundException: HelloWorld
        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:306)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class: HelloWorld.  Program will exit.

顺便说一句,这是我的 java 代码:

public class HelloWorld {
    public static void main (String args[]) {
        System.out.println("Hello World!!!");
    }
}

【问题讨论】:

  • 您从哪个文件夹运行 java 命令?
  • @AmitBhargava 主文件夹。我的 HelloWorld.java 和 HelloWorld.class 所在的目录相同。
  • 你能试试下面的方法吗:java -classpath HelloWorld
  • 你能给我们在主目录上ls -l的输出
  • 这看起来像是一个类路径问题。这里有一些信息:stackoverflow.com/questions/120662/… 您可能需要包含 -classpath 。

标签: java


【解决方案1】:

可能是该文件不在您的类路径中。请尝试以下命令:

java -classpath . HelloWorld

V

【讨论】:

  • 我觉得奇怪的是,Java 的类路径会出现问题,除非它安装不正确。通常,在 (U)buntu 上的非打包 Java 文件不应该有这个问题,但无论如何这总是一件好事。
  • @TheOnlyIdiot - 就像他说的,问题是这个类不在你的类路径上。 java 命令的手册条目中对此进行了全部说明。特别是关于设置类路径的页面。
  • @Makoto -(我怀疑 OP 已将 $CLASSPATH 设置为不起作用的东西......)
  • 是的..$CLASSPATH 通常有问题..我认为主要原因是默认情况下,Ubuntu 附带 OpenJDK 而不是 Oracle JVM,它要求您设置 CLASSPATH 而后者不需要t..您可以切换或将此行添加到主目录中的 .bashrc 文件中。export CLASSPATH=$CLASSPATH:. 然后您必须输入 source .bashrc
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-03
相关资源
最近更新 更多