1、普通java項目打jar包運行
1.1、新建一個java項目,必須有main方法,sys的打印目錄重定向到到外部文件
1.2、把項目到出成jar,如果Launch configuration 選不到要執行的main方法類,就先執行一下main方法
1.3、運行jar文件
2、jar包中class文件替換
1、普通java項目打jar包運行 <--返回目錄
轉載於:https://my.oschina.net/ThreeTiger/blog/2049719
1.1、新建一個java項目,必須有main方法,sys的打印目錄重定向到到外部文件
public class Main { public static void main(String[] args) throws FileNotFoundException { File test = new File("log.txt"); PrintStream out = new PrintStream(new FileOutputStream(test)); Timer timer = new Timer(); timer.scheduleAtFixedRate(new TimerTask() { @Override public void run() { System.setOut(out); System.out.println("hello world!"+new Date()); } }, 1000, 1000); } }
1.2、把項目到出成jar,如果Launch configuration 選不到要執行的main方法類,就先執行一下main方法
1.3、運行jar文件
方法一:打開cmd界面后輸入java -jar ***.jar 就可以運行,並且可以看到jar同級目錄生成了log.text日志文檔,關掉命令行框,程序終止
方法二:新建bat命令運行工具,雙擊運行,關閉程序需要在進程里殺掉
@echo off start javaw -jar tdemo.jar exit
2、 jar包中class文件替換 <--返回目錄
public class Demo01 { public static void main(String[] args) { fun1(); } public static int fun1() { int num = 1; System.out.println("fun1()返回" + num); return num; } }
把上面Demo項目exprot為jar包。運行結果:
修改 com.oy.test.Demo01 類 num=2,編譯后復制 com.oy.test.Demo01.class 到與 aaa.jar 同一目錄。
當然也可以復制 com.oy.test.Demo01.java 到 aaa.jar 同一目錄后使用javac進行編譯。
使用 jar -uvf aaa.jar com,將 com 目錄里面所有 class文件 替換到 aaa.jar。注意 com 目錄層級要與 aaa.jar 要被替換的 class 的目錄層級保持一致。
另外,需要注意的是,com 目錄的所有文件,在 aaa.jar 找到對應的文件則替換,沒有找到則添加。