我创建了以下项目结构。
[~/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