某些陈旧但需要维护的项目,只能通过java classpath
指定所有依赖的jar包和程序执行的jar包,指定需要执行的main方法所在的类,然后传参才能正常运行。为此我们需要自动生成执行这个jar包所需的bash脚本。我们可以使用类似于下面的代码 :
package com.heng.util;import java.io.File;public class OnTestingUtil { public static void main(String[] args) { // 假设所有需要依赖的jar都在lib下 File jarDir = new File("C:\\lib"); File[] jars = jarDir.listFiles(); String resultString = "nohup java -classpath "; // 拼接每一个jar包的名称,以:为分割 for (int i = 0; i < jars.length; i++) { String fileName = jars[i].getName(); if(i==jars.length-1){ resultString+="./lib/"+jars[i].getName(); }else{ resultString+="./lib/"+jars[i].getName()+":"; } } resultString+=" com.heng.HappyCoder /home/a.properties >hehe.log &"; System.out.println(resultString); }}
这样,我们就可以将生成的命令复制到脚本中,使用脚本启动可执行的jar了。