java和bat相互调用
1.bat 启动java main函数
1.将project导出JAR,过程中注意选择main class
2.新建bat,设置环境变量
3.1启动程序,如果想在黑窗口中打印数字,可以system.out,程序运行万
@echo off @setlocal set JAVA_HOME=jdk1.6.0_25 set PATH=%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin java -jar start.jar或者直接调用class文件
@echo off @setlocal set JAVA_HOME=..\jdk1.6.0_25 set PATH=%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin java usb/CreateStartBat
2.java调用bat
String cmd = "cmd /c start " + desDisk + ":\\server\\start.bat"; Runtime rt = Runtime.getRuntime(); try { rt.exec(cmd); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }3.若有需要传参数可以新建文件“xxx.bat”
public static void CreateBat(){ String desDisk = DiskUtil.getDesDisk(); String diskid = System.getProperty("user.dir").split(":")[0];//程序所在盘 System.out.println(desDisk+diskid); File file = new File(desDisk+"://"+COPY_FOLDER+"//"+FILE_NAME); FileWriter fw = null; try { File file2 = new File(desDisk+"://"+COPY_FOLDER); if(!file2.exists()){ file2.mkdir(); } file.createNewFile(); fw = new FileWriter(file); fw.write("@echo off\r\n"); fw.write("@setlocal\r\n"); fw.write("set JAVA_HOME=" + diskid +":jdk1.6.0_25\r\n"); fw.write(" set PATH=%JAVA_HOME%\\bin;%JAVA_HOME%\\jre\\bin \r\n"); fw.write("echo %~d0\r\n"); fw.write("%~d0\r\n"); fw.write("cd %~dp0\r\n"); fw.write("set JAVA_OPTIONS=%JAVA_OPTIONS% -server\r\n"); fw.write("set JAVA_OPTIONS=%JAVA_OPTIONS% -Xmx512m\r\n"); fw.write("set JAVA_OPTIONS=%JAVA_OPTIONS% -XX:MaxPermSize=128m\r\n"); fw.write("set JAVA_OPTIONS=%JAVA_OPTIONS% -Djava.io.tmpdir=tmp\r\n"); fw.write("set JAVA_OPTIONS=%JAVA_OPTIONS% -Dderby.system.home=derby\r\n"); fw.write("set OSGI_OPTIONS=%OSGI_OPTIONS% -Dosgi.configuration.area=osgi-config\r\n"); fw.write("set OSGI_OPTIONS=%OSGI_OPTIONS% -Dosgi.noShutdown=true\r\n"); fw.write("set OSGI_OPTIONS=%OSGI_OPTIONS% -Dosgi.install.area=./\r\n"); fw.write("echo 启动时JAVA配置: %JAVA_OPTIONS%\r\n"); fw.write("echo 启动时OSGI配置: %OSGI_OPTIONS%\r\n"); fw.write("echo 启动参数: %1 %2 %3 %4\r\n"); fw.write("java %JAVA_OPTIONS% %OSGI_OPTIONS% -jar core/org.eclipse.osgi_3.3.1.R33x_v20070828.jar -clean -consoleLog %1 %2 %3 %4"); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { try { fw.close(); } catch (Exception e) { e.printStackTrace(); } } }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。