簡體   English   中英

Java命令行編譯

[英]Java command line compile

我最近完成了使用Netbeans和Java的編程任務。 當我在Netbeans中運行該程序時,一切運行正常。 當我嘗試從終端運行它時,我的問題就來了。 我用所有的.java文件運行javac,並且為每個文件生成一個.class文件。 然后,當我嘗試運行可執行文件時,我就出錯了。

ls
Board.java          KenKenPuzzleSolver.java 
Solver.java         Cage.java 
Size.java           Values.java

javac KenKenPuzzleSolver.java Board.java Cage.java Size.java Solver.java Values.java

ls
Board.class         Size.class
Board.java          Size.java
Cage.class          Solver.class
Cage.java           Solver.java
KenKenPuzzleSolver.class    Values.class
KenKenPuzzleSolver.java     Values.java

java KenKenPuzzleSolver
Exception in thread "main" java.lang.NoClassDefFoundError: KenKenPuzzleSolver (wrong name: kenkenpuzzlesolver/KenKenPuzzleSolver)

另外,從終端運行程序時,它應該輸入一個輸入文件和一個輸出文件的名稱,即“ java KenKenPuzzleSolver input.txt output.txt”,我不太確定該怎么做。

為什么不使用netbeans生成可執行文件? 您不必每次都編譯代碼。

input.txtoutput.txt稱為參數。 它們將存儲在main函數中的String[] args數組中。

您未提供classpath參數。

使用javac -cp YOURCLASSPATH KenKenPuzzleSolver

您正在運行的類應為公共類,並且其類名應與文件名相同。 您的文件名似乎是“ KenKenPuzzleSolver”,但您的類名似乎是“ KenkenPuzzleSolver”(請注意小寫ken)。 更正該錯誤,然后重新編譯並重新運行。

您一定已經搞砸了案例,因為錯誤已經很明顯了,而不是在KenKenPuzzleSolver類命名為kenkenpuzzlesolver ,而不是KenKenPuzzleSolver.java

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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