利用脚本启动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 ...
随机推荐
- iOS日常学习 - 让你的 Xcode8 继续使用插件
本文转载,原文链接 随着 iOS10 的正式版即将发布,Xcode8 GM 也在发布会后放出,本文不会涉及到 Xcode8 有哪些更新,而是记录了如何让 Xcode8 继续支持 Plugin. 相信各 ...
- lamp架构之升级php版本
当你看到这篇文章的时候 YHSPY.COM 服务器上的PHP版本已经从 5.4.27 升级到了 7.0.4,这是一个重大的飞跃.一路升级遇到了很多问题.官方声称PHP7最大的升级就是在语言性能上的提升 ...
- vs2013 浏览器 browserlink 不停访问
- 比较好的SQL
DECLARE @Data NVARCHAR(30);DECLARE @Data2 NVARCHAR(30);SET @Data = @DataDate;SET @Data = CONVERT(CHA ...
- Pandas系列
系列(Series)是能够保存任何类型的数据(整数,字符串,浮点数,Python对象等)的一维标记数组.轴标签统称为索引. pandas.Series Pandas系列可以使用以下构造函数创建 - p ...
- ElasticSearch数据副本模型
介绍 ES里面的每一个索引(Index)由多个shard组成,每一个shard有多个副本.这些副本被称为同步组.当增加或者删除文档时,这些副本之间必须保持同步,以便让所有副本都能包含相同的文档.如果同 ...
- css 中的background:transparent到底是什么意思有什么作用
有时我在看css时,看到有的css属性定义为background:transparent.意思就是背景透明.实际上background默认的颜色就是透明的属性.所以写和不写都是一样的 有段时间没写文章 ...
- D3.js学习笔记(四)—— 使用SVG坐标空间
目标 在这一章,你将要使用D3.js基于一些数据把SVG元素添加到你想要的坐标位置上. 我们的目标就是使用下面的数据集: var spaceCircles = [30,70,110]; 并使用D3.j ...
- 习题-第7章Web自动化测试
一.选择题 1.如果火狐浏览器不在默认安装路径,编写Selenium的设置代码,横线处应该填入( ), System.setProperty(“webdriver.firefox._______ ...
- colorlog的三个例子
例1:默认的log_colors import logging from logging.handlers import RotatingFileHandler from colorlog impor ...