我最近使用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”,我不太清楚如何做到这一点。
答案 0 :(得分:0)
为什么不用netbeans生成可执行文件?您不必每次都编译代码。
input.txt
和output.txt
被称为参数。它们将存储在String[] args
函数中的main
数组中。
答案 1 :(得分:0)
您没有提供classpath参数。
使用javac -cp YOURCLASSPATH KenKenPuzzleSolver
答案 2 :(得分:0)
您正在运行的类应该是公共的,并且应该具有与文件名相同的类名。看起来您的文件名是“KenKenPuzzleSolver”,但您的类名似乎是“KenkenPuzzleSolver”(观察小写字母)。纠正这个并重新编译并重新运行。
答案 3 :(得分:0)
你必须搞好案件,从错误中明显而不是KenKenPuzzleSolver
你在kenkenpuzzlesolver
中将你的班级命名为KenKenPuzzleSolver.java
。