当前位置: 技术问答>java相关
俺服了JAVA了,那个叫包包(package)的东东怎么用啊!~
来源: 互联网 发布时间:2017-04-08
本文导语: 生成的class怎么执行不了呢? Exception in thread "main" java.lang.NoClassDefFoundError: TestString (wrong name: hehe/TestString) 包包的名叫hehe | 有时,在hehe目录下执行java hehe.TestString会有问题, 在hehe的上一级...
生成的class怎么执行不了呢?
Exception in thread "main" java.lang.NoClassDefFoundError: TestString (wrong name: hehe/TestString)
包包的名叫hehe
Exception in thread "main" java.lang.NoClassDefFoundError: TestString (wrong name: hehe/TestString)
包包的名叫hehe
|
有时,在hehe目录下执行java hehe.TestString会有问题,
在hehe的上一级目录执行:java hehe.TestString 通过
在hehe的上一级目录执行:java hehe.TestString 通过
|
好像应该是
在hehe的上一级目录执行:java hehe.TestString 通过
在hehe的上一级目录执行:java hehe.TestString 通过
|
在对应的 classpath下键一个hehe的目录,
package一般是文件目录。或者打成.jar文件在classpath下设置该.jar.
package一般是文件目录。或者打成.jar文件在classpath下设置该.jar.
|
记得以前1.3可以自动生成的
1.4,没办法,自己建了
1.4,没办法,自己建了
|
package实际上就是目录结构,你的class要运行,必需要让java知道所需的全部class在何处可找到。因此你必须把包路径写进classpath,告诉VM到这些路径去找包,进而找包下的class。注意包路径指的是包的上一级路径。
拿你的例子来说,假如你的hehe包在/tmp下(就是说/tmp/hehe目录存在,TestString.class在/tmp/hehe/下),你应该用如下指令运行:
java -cp $CLASSPATH:/tmp hehe.TestString
拿你的例子来说,假如你的hehe包在/tmp下(就是说/tmp/hehe目录存在,TestString.class在/tmp/hehe/下),你应该用如下指令运行:
java -cp $CLASSPATH:/tmp hehe.TestString