簡體   English   中英

無法運行簡單的已編譯Java程序?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM