aidiyuxin 发表于 2013-2-7 03:51:21

利用脚本启动java程序

今天在工作中,需要写一个shell脚本,启动一个socket程序,从而模拟短信网关。查了一些资料,终于搞定了,现在记录一下,方便大家查阅。

       为了说明使用方法,我们就用最简单的程序来实现,比如我们要运行下面这个类的main方法

import java.io.File;import java.io.IOException;import org.apache.log4j.Logger;public class TestClass ...{      static Logger log = Logger.getLogger(TestClass.class);    /** *//**   * @param args   */    public static void main(String[] args) ...{      log.debug(args);      File file = new File(args);      try ...{            file.createNewFile();      } catch (IOException e) ...{            e.printStackTrace();      }    }}         
       我们需要把这个类所在的project打成jar包,比如叫做:cmdDemo.jar,然后把cmdDemo.jar和该工程所需要的所有jar包放到一起,比如我的目录是:D:/cmdDemo/lib。

         以下要写脚本文件,我们分为两个部分,windows和linux。

一.windows

      在windows下就是要写大家熟悉的bat文件,例如我在D:/cmdDemo/lib下新建一个start.bat,内容如下:

java -classpath D:/cmdDemo/lib/log4j-1.2.14.jar;D:/cmdDemo/lib/cmdDemo.jar chb.cmd.test.TestClass D:/cmdDemo/test.txt
       然后双击该bat文件,就会发现在D:/cmdDemo目录下多了个test.txt文件。

二.linux

         在linux下需要新建一个sh脚本,基本写法和在windows下一样,唯一区别是在windows下各个jar包之间的分隔符是";",而在linux下各个jar包之间的分隔符是":"。

java -classpath /root/cmdDemo/lib/log4j-1.2.14.jar:/root/cmdDemo/lib/cmdDemo.jar chb.cmd.test.TestClass /root/cmdDemo/test.txt
      然后运行这个脚本文件就ok了,如果没有权限的话,记得使用

chmod +x start.sh


      恩,好了,虽然很简单,但是还是希望能够帮助大家。


      Linux/Unix下读取lib目录下所有包生成classpath的Shell
       http://www.blogjava.net/Unmi/archive/2007/07/25/132391.html
页: [1]
查看完整版本: 利用脚本启动java程序