[英]Cannot run simple compiled java program?
我在Arch Linux上,我剛剛安裝了JRE和JDK,所有正確的bin文件(javac和java)都在/ opt / java / bin /中。
我只是編譯了一個標准的hello世界,並使用運行javac ./hello.java
進行了javac ./hello.java
,從而創建了一個類。
現在我的問題正在運行。 我運行java ./helloworld.class,即使我指向java的文件不存在,它也會給我一個錯誤:
Exception in thread "main" java.lang.NoClassDefFoundError: //helloworld/class
Caused by: java.lang.ClassNotFoundException: ..helloworld.class
(..omitted for clarity..)
Could not find the main class: ./helloworld.class. Program will exit.
您會注意到錯誤的第一行,它改變了路徑//helloworld/class
當我輸入java的絕對路徑時,即java /home/foo/helloworld.class
它給出了相同的錯誤,但是用代替了路徑的/
.
在第一行,再次蒙蒙。
你覺得錯什么? 我真的不知道為什么要這么做。
運行Java時,只需將其傳遞給標准類名(包括包),而不是文件名。
java helloworld
將查找helloworld.class。
java helloworld.class
將尋找helloworld / class.class
你不運行文件# java file.class
運行它# javac PATH/file.java
# java PATH/file
使用JAVA命令時請勿添加.class。
其實你應該這樣編譯
javac helloword.java
運行程序
java helloword
還有另一件事:添加命令行選項“ -classpath”。 或它的簡短版本“ -cp”,即您的命令行應類似於:java -cp。 你好,世界
這是如果您的班級在您的當前目錄中。 除此以外 ”。” 應該替換為可以找到該類的路徑。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.