从命令行编译和运行Java

时间:2020-02-26 16:46:10

标签: java compilation runtime-error

我创建了以下项目结构。

[~/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一段时间后,我注意到我不知道如何手动执行此操作,我想更改它。

1 个答案:

答案 0 :(得分:1)

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

运行

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

或更改为bin目录,然后在不使用cp的情况下运行

cd bin 
java src.main.java.App