我写了一个简单的java程序
package abc.def.ghi
public class Foobar{
public String printS(String s){
System.Out.println(s);
public static void main(String [] args){
String s = args[0];
Foobar foobar = new Foobar();
foobar.printS(s);
}
现在我做了javac Foobar.java
它创建了一个类文件
然后我做了
java Foobar
Didnt工作
java Foobar hi //args
Didnt工作
java -cp。 abc.def.ghi.Main
DIdnt工作。
我得到的错误是:
Exception in thread "main" java.lang.NoClassDefFoundError: abc/def/ghi/Main
Caused by: java.lang.ClassNotFoundException: com.intel.hadoop.graphbuilder.conf.Main
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class: com.intel.hadoop.graphbuilder.conf.Main. Program will exit.
答案 0 :(得分:3)
您是否将.class
个文件放在路径(path to project)/abc/def/ghi/Foobar.class
?
NoClassDefFoundError: abc/def/ghi/Foobar
看起来你没有。
答案 1 :(得分:1)
如果使用
进行编译javac -d . Foobar.java
然后编译器将.class
文件放在正确的目录中以匹配其包名,然后
java abc.def.ghi.Foobar
应该成功运行。