【问题标题】:Cannot run java class from command line无法从命令行运行 java 类
【发布时间】:2015-09-27 11:44:17
【问题描述】:

我在 Eclipse 中创建了一个包,并在 Eclipse 中运行我的 HelloWorld。

当我转到命令提示符并导航到该文件夹​​并运行 javac HelloWorld.java 时,它编译没有问题。

当我运行 java HelloWorld 时,我得到了 错误:无法找到或加载主类 HelloWorld

我也尝试过 java Hello.HelloWorld 认为可能是因为它有一个包声明

package Hello; 
public class HelloWorld { 
    public static void main(String[] args) { 
       System.out.println("Hi there. How you doin?");
   } 
}

【问题讨论】:

  • 将代码添加到您的问题中。没有它,很难知道您是否有包声明,以及是否有正确的main
  • 您尝试从哪个位置运行命令以及您的类的结构是什么?
  • 哦!!我想我明白了。当我声明包你好; java在当前文件夹下查找名为Hello的文件夹。
  • 包你好; public class HelloWorld { public static void main(String[] args) { System.out.println("你好。你好吗?"); } }
  • 你读过这个吗? stackoverflow.com/a/18093929/139985

标签: java javac


【解决方案1】:

当您运行javac 时,使用开关-d 指定您要为包创建文件夹结构。 javac reference.

例如javac -d . HelloWorld.java

当你说-d .时,编译器会在当前路径中创建具有包目录结构的类。

一旦你有编译好的类,使用java Hello.HelloWorld 来运行程序。

建议包名以小写开头。

【讨论】:

    【解决方案2】:

    您必须在 Hello 文件夹之外运行代码

    java Hello/HelloWorld
    

    你应该在 Hello 目录中有 HelloWorld.class

    【讨论】:

    • 谢谢大家!!!我意识到我必须先在 Windows 中创建 classes 文件夹,然后才能运行 -d 开关。我也在类所在的文件夹中运行 java。上一个文件夹并给它相对路径就可以了!再次感谢! @rvillablanca
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-26
    • 1970-01-01
    • 1970-01-01
    • 2013-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多