【问题标题】:Trouble running java app from cmd从 cmd 运行 java 应用程序时出现问题
【发布时间】:2017-08-10 14:32:38
【问题描述】:

我有两个文件,app.java 和 test.java 它们都驻留在同一个包中,并且使用“javac app.java test.java”编译得很好 然后创建了两个类文件。 但是,当我使用命令“java app”运行它们时,因为 app 具有 main 方法,我得到“错误:无法找到或加载主类应用程序”

app.java:

package working_directory;

public class app {

public app() {

}

public static void main(String [] args) {
    test testing = new test();
    System.out.println(testing.calculate(60));
}
}

这是 test.java

package working_directory;

public class test {

public test() {

}

public int calculate(int x) {
    return (int) x * x * x;
}
}

【问题讨论】:

  • 我们无法调试我们看不到的代码。
  • 没有代码可看。给出所有有问题的信息
  • 目录下有四个文件,app.java、test.java、app.class、test.class
  • 它在 IDE 中运行良好,我只是无法通过 CMD 手动运行它

标签: java javac


【解决方案1】:

确保为编译和运行代码选择正确的路径:

D:\
 +--Folder(start cmd here)
       +---working_directory
                          +----app.java
                          +----test.java

如何编译

D:\Folder\>javac working_directory\*.java

如何运行

D:\Folder\>java working_directory.app

【讨论】:

  • 这是我的问题。我已经在工作目录中启动了 cmd。 "D:\Folder\>java working_directory.app" 工作。
【解决方案2】:

要使用java 命令,您必须指定要运行的类的完全限定名。这意味着您还需要指定包名称。

你应该运行这个:

java working_directory.app

因为working_directory 是包名。

【讨论】:

  • 试过了,但同样的错误。错误:无法找到或加载主类 working_directory.app
  • @laocak working_directory 是您的包裹的实际名称吗?如果不是,请使用包的实际名称。
  • 是的,working_directory 是包的全名,它包含在两个文件中。
  • @laocak 我明白了。在运行java 之前,您需要转到父目录。即cd ../
【解决方案3】:

从命令行运行时,您必须提供类路径:

(适用于窗户)

java -classpath . app

【讨论】:

  • java -classpath 。应用程序错误:无法找到或加载主类应用程序
  • @laocak,尝试在 working_directory 之外执行此命令,如 java -classpath 。 working_directory.app
【解决方案4】:

你有一个声明的包名,换句话说就是一个文件夹。你的项目应该是这样的

C:\YourProject
 C:\YourProject\working_directory
  C:\YourProject\working_directory\app.java

您的项目从根级别开始,所以它是C:\YourProject,您必须使用命令行并输入java working_directory.app

【讨论】:

  • 目录下所有文件均为小写,相互匹配
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-06-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-03
  • 2021-06-11
相关资源
最近更新 更多