问个比较弱的问题,大家来解惑啊
Testjar.java代码如下package test1.test2.test3;
public class Testjar
{
public static void main(String[] args)
{
System.out.println("Hello,World!");
}
}然后执行
javac -d . Testjar.java生成Testjar.class位于
./test1/test2/test3/
这样的路径下现在使用jar命令归档
jar cvf Test.jar -C test1/ .则Testjar.class位于Test.jar中的 test1/test2/test3/ 路径下这个时候要使用java命令访问Testjar.class 应该如何操作啊?之前遇到过的情况,要访问的class文件在jar文件的根目录下,用
java -cp Test.jar Test就能够访问。稍微变了点花样,就玩不来了,唉……
Testjar.java代码如下package test1.test2.test3;
public class Testjar
{
public static void main(String[] args)
{
System.out.println("Hello,World!");
}
}然后执行
javac -d . Testjar.java生成Testjar.class位于
./test1/test2/test3/
这样的路径下现在使用jar命令归档
jar cvf Test.jar -C test1/ .则Testjar.class位于Test.jar中的 test1/test2/test3/ 路径下这个时候要使用java命令访问Testjar.class 应该如何操作啊?之前遇到过的情况,要访问的class文件在jar文件的根目录下,用
java -cp Test.jar Test就能够访问。稍微变了点花样,就玩不来了,唉……
unzip -l Test.jar
Archive: Test.jar
Length Date Time Name
-------- ---- ---- ----
0 01-10-10 19:08 META-INF/
71 01-10-10 19:08 META-INF/MANIFEST.MF
0 01-10-10 19:08 test1/
0 01-10-10 19:08 test1/test2/
0 01-10-10 19:08 test1/test2/test3/
438 01-10-10 19:08 test1/test2/test3/Testjar.class
155 01-10-10 19:07 Testjar.java
-------- -------
664 7 filesjava -cp Test.jar test1.test2.test3.Testjar
执行java命令的时候总是提示java.lang.ClassNotFoundException...
jar cvf test.jar ./test1/test2/test3
java -cp test.jar test1.test2.test3.Testjar
楼上的几位,你们编译并归档得到jar文件后,把除jar文件以外的其它文件删除,否则执行java命令的时候检索到的是jar外面的Testjar.class。
前面要加上包名。
不加当然是错误的。
可以看看王森的《Java深度历险》扫盲
有这样一个jar包,内部结构如下
Test.jar/
/test1/
/test2/
/test3/
/Testjar.class
现在想通过java命令执行Testjar.class。这个Testjar.class是顶楼那段代码编译得到的。
编译使用的是javac -d . Testjar.java
所以会有这么个文件夹结构。
然后现在想用java命令访问Testjar.class。另外,回11楼——水平有限,我没看懂。