【问题标题】:Running java helloworld运行 java helloworld
【发布时间】:2012-07-22 13:25:31
【问题描述】:

我尝试用 google 搜索此内容,访问 oracle.com 并阅读了该论坛上与此相关的所有问题。我写了一个简单的“Helloworld”程序

package helloworld;

public class Helloworld {
    public static void main(String[] args) {

        System.out.println("Hello World!");
    }
}

NetBeans 将源代码编译成.class 文件。我把那个文件移到C:\MyJava

我尝试通过C:\MyJava> java -cp . Helloworld 以及所有可能的变体来运行它。我不断收到NoClassDefFoundError: Helloworld (wrong name: helloworld/Helloworld)

为了确定。有一个几乎完全一样的问题(“错误名称”的差异)。该问题的解决方案不适用于我的情况。

【问题讨论】:

  • package hello world 是一个无效的包声明,我假设你想要 package hello.world;
  • @Thomas:抱歉,这是我的编辑错误。
  • C:\MyJava>cd helloworld 然后 C:\MyJava\helloworld>java Helloworld 像这样运行它会在 helloworld 是你的包名的地方工作。用包(文件夹)复制 .class。

标签: java


【解决方案1】:

下面的帖子与您的问题相似。我希望它能指导你;

How do I run .class files on windows from command line?

【讨论】:

  • 这不是答案。使用 cmets ..哦,您没有足够的 cmets 代表
【解决方案2】:

您收到“错误名称”错误,因为您的课程在包 helloworld 中。 Java 希望您在命令行上提供完全限定的类名:

C:\MyJava> java -cp . helloworld.Helloworld

目录结构必须与包结构匹配。这意味着您应该有一个目录C:\MyJava\helloworld,其中包含类文件Helloworld.class

【讨论】:

  • 杰斯珀,非常感谢。我不知道这是否应该是显而易见的,但对我来说肯定不是。谢谢。
【解决方案3】:

你需要告诉它包名(helloworld):

C:\MyJava> java -cp . helloworld.Helloworld 

【讨论】:

  • 感谢乔恩·林。你的回答也是对的。 Jesper 添加了运行 java 所需的包/文件夹结构。谢谢。
  • 您不需要指定指向“.”的类路径。这是默认行为;)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-01-04
  • 2012-05-26
  • 2011-09-03
  • 2014-07-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多