这个是这样的啊,有两种解决办法
一:把包去掉
二:运行时候加上这个
java wo/Helloworld1
为什么会出现这样的原因呢?
因为打包的时候已经把.class文件打包到wo的文件夹下去了
而java命令执行的时候是在当前目录下找.class文件,如果找不到就会出错
所以。。。。。
呵呵
给你做个示范
C:\>javac -d . Helloworld1.java //打包
C:\>java Helloworld1
Exception in thread "main" java.lang.NoClassDefFoundError: Helloworld1 (wrong na
me: wo/Helloworld1)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$000(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
Could not find the main class: Helloworld1. Program will exit.
成功后的是这样的:
C:\>java wo/Helloworld1
Hello world!
讲的不是很多,但原理就这样的哦
有了包名的话就得
java 报名.test才能执行啊。否者找不到类。你的第二个问题也是这个。加上包名试试
can kao: http://hi.baidu.com/christal_yhy/blog/item/965d28a3c69da4a4caefd03b.html
Process p = run.exec("java test");
这里 可以改成 run.bat
run.bat中内容为
cd 目录
java test
直接java class文件应该是可以的
前面加上路径肯能会有问题