JAVA开发者招数之“万里之行始于足下”

JAVA开发者招数之“万里之行始于足下”   

生存运行批处理程序(UNIX版本或者WINDOWS版本)

package com;

import java.io.File;

/**
 * 功能:生成java批处理程序
 * 现状:很多“高手”都受jar包的困扰,认为写个批处理很容易,但是写出来的bat或者sh屡屡出错,今天老蒋我特花点时间写个类,解决这个问题。
 * 描述:根据操作系统类型生成批处理文件内容体
 * @author javy21
 *
 */
public class LibMainProcess {


 public static void main(String[] args) {
  LibMainProcess main = new LibMainProcess();
//  是否是WINDOWS操作系统 是windows环境则为true 否则为false
  boolean isWin = true;
//  jar包的实际存放目录
  String libSrcPath = "./lib";
//  实际报文体中的目录路径,可以与libSrcPath不同,要视部署具体路径而定
  String libDestPath = "./lib";
//  应用的主类(包含包路径)
  String strMainClass = "com.MainProcess";
//  生成批处理文件内容体
  String theRunStr = main.getRunStr(isWin, libSrcPath , libDestPath ,strMainClass );
  System.out.println("WINDOWS RUN.BAT:/n"+theRunStr);

//  UNIX的sh脚本
  isWin = false;
//  生成批处理文件内容体
  theRunStr = main.getRunStr(isWin, libSrcPath , libDestPath ,strMainClass );
  System.out.println("UNIX RUN.SH:/n"+theRunStr);

 }

 /**
  * 功能:生成java批处理程序
  * 描述:根据操作系统类型生成批处理文件内容体
  * @param isWin   Windows操作系统标识:true为WINDOWS否则为UNIX系列
  * @param libSrcPath jar包的实际存放目录
  * @param libDestPath 实际报文体中的目录路径,可以与libSrcPath不同,要视部署具体路径而定
  * @param mainClass  应用的主类(包含包路径)
  * @return
  */
 public String getRunStr(boolean isWin, String libSrcPath, String libDestPath,
   String mainClass) {
  String rsstr = "";
  StringBuffer contentstr = new StringBuffer("");
  File f = new File(libSrcPath);
  if (f.exists() && f.isDirectory()) {
   File[] files = f.listFiles();
   for (int i = 0; i < files.length; i++) {
    if (files[i].exists() && files[i].isFile())
     if (isWin) {
      contentstr.append(libDestPath + "/" + files[i].getName()
        + ";");
     } else {
      contentstr.append(libDestPath + "/" + files[i].getName()
        + ":");
     }
   }
  }
  if (isWin) {
   rsstr += "@echo off/n";
   rsstr += "Title " + mainClass + " /n";
   rsstr += "java -classpath ./bin;" + contentstr.toString() + " "
     + mainClass + "/n";
   rsstr += "@echo on";
  } else {
   rsstr += "java -classpath ./bin:" + contentstr.toString() + " "
     + mainClass + " > /dev/null &";
  }
  return rsstr;
 }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值