作者darkk6 (Mr. Pan)
看板java
标题Re: [问题] command Line 打包jar档与执行
时间Wed Dec 10 18:04:00 2014
※ 引述《JGC18 (JGC)》之铭言:
: [编译TestJar.class指令]
: D:\java\workspace\testProject\Lib\show>javac TestJar.java
: 产生TestJar.class
所以你的档案在 D:\java\workspace\testProject\
Lib\show\TestJar.class
: [Manifest.mf]
: 放置路径="D:\java\workspace\testProject\Lib\show"
: Manifest-Version: 1.0
: Sealed: true
: Main-Class: Lib.show.TestJar
: //<---有个空行
这边你表示 Main Class 是在 Lib.show.TestJar
那麽你的 jar 档案用 WinRAR 或者 7-zip 打开
应该要看到一个资料夹名为 Lib , 底下有 show 底下有 TestJar.class
也就是
[ JarFile.jar ]
│
└Lib/
│
└show/
│
└TestJar.class
: [打包成test.jar指令]
: D:\java\..\testProject\Lib\show>jar -cvfm test.jar manifest.mf TestJar.class
: 产生test.jar
这样的话你的 jar 档案里面只会直接出现一个 TestJar.class
( 当然我这边先不列 Manifest )
[ JarFile.jar ]
│
└TestJar.class
那麽你在执行 java -jar JarFile.jar 的时候,在 jar 里面找不到
Lib.show.TestJar 这个 class
----------
因此我建议你把 manifest.mf 放在 D:\....\testProject\ 底下
然後在 D:\....\testProject\ 下指令:
jar -cvfm test.jar manifest.mf
Lib/
记得你要把完整的结构给包进 jar 里面
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 223.139.17.207
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/java/M.1418205842.A.142.html
1F:推 JGC18: 非常感谢darkk6,把Lib一并打包,就可以得到正确结果 12/11 10:22
2F:→ JGC18: 谢谢^^a 12/11 10:23
3F:推 v9290026: 推讲解完整 12/11 11:21