我创建了以下项目结构。

[~/Projects/CountWords]@Ubuntu1804  #> find .
.
./bin
./src
./src/main
./src/main/java
./src/main/java/App.java


这是App.java的内容:

package src.main.java;


public class App {
    public static void main(String[] args){
        System.out.println("Hola");
    }
}


我将我的应用程序编译为:

javac -d bin/ -cp src/main/java/ src/main/java/*


哪个工作正常。我使用星号是因为该文件夹中将有更多类,但目前只有一个。这将创建以下结构:

[~/Projects/CountWords]@Ubuntu1804  #> find .
.
./bin
./bin/src
./bin/src/main
./bin/src/main/java
./bin/src/main/java/App.class
./src
./src/main
./src/main/java
./src/main/java/App.java


但是我的问题是当我尝试运行该应用程序时。我认为这会工作:

java src.main.java.App


但这失败了:

Error: Could not find or load main class src.main.java.App
Caused by: java.lang.ClassNotFoundException: src.main.java.App


我究竟做错了什么?

我知道这肯定是一个非常愚蠢的问题,但是我想手工编写一个中小型项目,只是为了了解IDE自己做什么。使用Eclipse使用Java一段时间后,我注意到我不知道如何手动执行此操作,我想更改它。

最佳答案

您必须为Java定义类路径。
有两种可能性:

java -cp ./bin src.main.java.App

或更改为bin目录,然后在不使用cp的情况下运行
cd bin
java src.main.java.App

09-10 08:14
查看更多