java和bat相互调用

来源:互联网 发布:java的socket编程 编辑:程序博客网 时间:2024/06/18 11:37

1.bat 启动java main函数

1.将project导出JAR,过程中注意选择main class

2.新建bat,设置环境变量

3.1启动程序,如果想在黑窗口中打印数字,可以system.out,程序运行万

@echo off@setlocalset JAVA_HOME=jdk1.6.0_25set PATH=%JAVA_HOME%\bin;%JAVA_HOME%\jre\binjava -jar start.jar
或者直接调用class文件

@echo off@setlocalset JAVA_HOME=..\jdk1.6.0_25set PATH=%JAVA_HOME%\bin;%JAVA_HOME%\jre\binjava 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 blocke.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 blocke.printStackTrace();} finally {               try {                   fw.close();               } catch (Exception e) {                   e.printStackTrace();               }           }   }



4 0