利用脚本启动java程序
今天在工作中,需要写一个shell脚本,启动一个socket程序,从而模拟短信网关。查了一些资料,终于搞定了,现在记录一下,方便大家查阅。
为了说明使用方法,我们就用最简单的程序来实现,比如我们要运行下面这个类的main方法
package chb.cmd.test;
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[0]);
File file = new File(args[0]);
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
恩,好了,虽然很简单,但是还是希望能够帮助大家。
利用脚本启动java程序的更多相关文章
- shell脚本启动java程序
#!/bin/bash ### 切换到工作目录 bin=$(cd `dirname ${0}`;pwd) cd ${bin} echo "bin [${bin}] .." ### ...
- Linux上设置开机启动Java程序
在Linux上设置开机启动Java程序,例如:test.jar 在Linux上启动Java程序的命令: nohup java -jar test.jar >/dev/>& & ...
- IDEA部署项目,并结合Shell脚本运行Java程序
一.概述 在实际开发中,我们写好的代码,往往打成war包或jar包,通过winscp或其他软件将其上传至服务器,然而这样非常大的一个弊端就是不利于开发,为什么这么说呢?假如我们刚刚将springboo ...
- sh脚本执行Java程序
1.不引用Jar包或者资源文件夹 最简单的程序Hello World. 首先创建Hello.java public class Hello { public static void main(Stri ...
- Android For JNI(一)——JNI的概念以及C语言开发工具dev-c++,编写你的第一个C语言程序,使用C启动JAVA程序
Android For JNI(一)--JNI的概念以及C语言开发工具dev-c++,编写你的第一个C语言程序 当你的Android之旅一步步的深入的时候,你其实会发现,很多东西都必须去和framew ...
- window JNI_CreateJavaVM启动java程序
https://blog.csdn.net/earbao/article/details/51889605 #define _CRT_SECURE_NO_WARNINGS 1 #inclu ...
- 使用shell/bat脚本调试java程序示例
一.linux下shell启动java #!/bin/sh JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/jre # JVM_OPT ...
- eclipse通过maven建立java se工程配置log4j,打包成zip,将jar包和配置文件分开,并以bat和sh文件启动java程序
一.新建maven的java工程 1.eclipse里file-new-other,选择maven Project 2.选中 Use default Workspace location,然后 nex ...
- shell脚本运行java程序jar
在UBuntu上部署项目的时候,我们往往通过一段shell来启动程序,甚至是通过crontab定时任务来定时的调用java程序,但是很奇怪的一个问题就是,比如我写了一个如下的shell脚本: #!/b ...
随机推荐
- [BZOJ2342]双倍回文
对每个大中心暴力找小中心即可. 代码: #include<iostream> #include<cstdio> #include<cstring> #define ...
- grable编译spring源码并导入eclipse
1.下载安装gradle, spring 源码构建加入了gradle支持. gradle下载: http://www.gradle.org/downloads ,下载后设置环境变量: GRADLE_H ...
- jedis客户端,取redis服务的值
package com.common.util; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; ...
- Contest-hunter 暑假送温暖 SRM01
一直找不到好的题去做...于是想到了srm...回来补题...QAQ 从srm01补起 A 题意:n个数,排成一列,刚开始都是1,如果左右相等就可以合并,问最后的数列长什么样. 思路:比赛的时候直接敲 ...
- 关于YII2中编辑页面全局变量冲突问题
今天做一编辑页面时被一个很小的问题困了许久.由于在YII2框架里高度集成了bootstrp框架,在做一个编辑的页面时出现了一个自定义的功能,自定义的字段非数据库表里的字段,所以需要在模型里单独声明一个 ...
- quartz(7)-源码分析
定时器启动 上图通过spring加载quartz <bean id="scheduler" class="org.springframework.schedulin ...
- 一个Elasticsearch嵌套nested查询的实例
创建索引和数据准备 PUT course PUT course/_mapping/course { "properties": { "course":{ &qu ...
- Tomcat出现java.lang.Exception: Socket bind failed
今天测试系统,Tomcat(apache-tomcat-6.0.20windows版)突然出现异常,导致JSP页面无法运行.错误提示如下:2014-3-12 17:13:29 org.apache.c ...
- Kubernetes源码之旅:从kubectl到API Server
概述: Kubernetes项目目前依然延续着之前爆炸式的扩张.急需能够理解Kubernetes原理并且贡献代码的软件开发者.学习Kubernetes源码并不容易.Kubernetes是使用相对年轻的 ...
- 编写第一个springboot应用
1.1.1. 设置spring boot的parent <parent> <groupId>org.springframework.boot</groupId> ...