我正在试图弄清楚现有的Java程序(我没有使用自己的程序)是如何用现有的jar编译的
我有Test.java
(原始源文件):
package Demo;
//import classes from jars here etc...
public class Test {
public static void main(String args[]) {
etc...
}
}
现在我还有另外两个罐子:
file1.jar
file2.jar
Demo.jar
有一个批处理脚本可以运行它:
@echo off
set CLASSPATH="file1.jar";"file2.jar";"Demo.jar"
java -cp %CLASSPATH% Demo.Test
这个工作,但现在我需要更改源文件Test.java,重新编译并运行jars类依赖项。 (对不起,如果我没有意义)
现在,我试图重新编译它以重现相同的结果而没有运气:
javac -cp file1.jar;file2.jar;Demo.jar Test.java
定义清单:
manifest.mf
Main-class: Demo.Test
为类文件创建目录“store”并在那里移动类文件
冉:
jar -cmf manifest.mf Demo.jar store
创建了“Demo.jar”
然后我运行上面的批处理脚本但不是相同的结果(根本不起作用)
任何帮助将不胜感激。谢谢!
答案 0 :(得分:0)
一旦依赖外部罐子,就很难创建真正的可执行jar。
这里唯一的解决方案是:
java -jar Demo.jar
清单必须如下:
manifest.mf
Main-class: Demo.Test
Class-Path: file1.jar file2.jar