2012-10-07 164 views
0

我最近使用Netbeans和Java完成了一个编程任务。当我在Netbeans上运行程序时,一切都运行完美。当我尝试从终端运行它时,我的问题就出现了。我用所有的.java文件运行javac,并为每个文件生成一个.class文件。然后当我尝试运行可执行文件时,它出错了。Java命令行编译

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的”,我不太清楚如何去做这个。

+2

阅读更多关于'CLASSPATH'和参数到'static main'方法的作用。 –

+1

有关'javac'的更多信息,请输入'man javac'。阅读它,它很可能解决你的问题。 – elyashiv

+0

你有一个软件包问题,看来你的KenKenPuzzleSolver实际上是kenkenpuzzlesolver.KenKenPuzzleSolver(在包kenkenpuzzlesolver中)检查你的软件包声明,如果是这样,你需要来一个目录后面并执行'java kenkenpuzzlesolver.KenKenPuzzleSolver'。 –

回答

0

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

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

0

您没有提供classpath参数。

使用javac -cp YOURCLASSPATH KenKenPuzzleSolver

0

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

0

你一定弄错了个案,从错误它的明显而不是KenKenPuzzleSolver你已经命名你的类kenkenpuzzlesolverKenKenPuzzleSolver.java