Java命令行编译

时间:2012-10-07 07:07:00

标签: java command-line compilation terminal

我最近使用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”,我不太清楚如何做到这一点。

4 个答案:

答案 0 :(得分:0)

为什么不用netbeans生成可执行文件?您不必每次都编译代码。

input.txtoutput.txt被称为参数。它们将存储在String[] args函数中的main数组中。

答案 1 :(得分:0)

您没有提供classpath参数。

使用javac -cp YOURCLASSPATH KenKenPuzzleSolver

答案 2 :(得分:0)

您正在运行的类应该是公共的,并且应该具有与文件名相同的类名。看起来您的文件名是“KenKenPuzzleSolver”,但您的类名似乎是“KenkenPuzzleSolver”(观察小写字母)。纠正这个并重新编译并重新运行。

答案 3 :(得分:0)

你必须搞好案件,从错误中明显而不是KenKenPuzzleSolver你在kenkenpuzzlesolver中将你的班级命名为KenKenPuzzleSolver.java