对于Java应用程序(非web应用) 在部署后 常常需要一个启动脚本来加载一些第三方的jar包 并启动应用
对于java应用程序 我一般喜欢将程序的目录结构写成如下的方式
myapp
| lib
| bin
| packages
一些配置文件和属性文件
一个startup sh 或bat启动脚本
其中 packages是程序的根包 其中有子包和class文件等
在包中 有一个Main calss的类 这个作为程序的入口
下面给出一个最一般的写法
startup sh #!/bin/sh
programdir=
num=$#
temp=$CLASSPATH
#setting libs path
libs= /lib/*
append(){
temp=$temp : $
}
for file in $libsdo
append $file
done
export CLASSPATH=$temp: : /:$programdir
export LANG=zh_CN
nohup java classpath $CLASSPATH packaages xxx yyy Main &
这样 只要按照上面的方式组织程序 启动脚本就需要改动下Main前面的包路径即可
nohup 上面脚本中最后一行前有nohup 这是将程序的输入输出都将附加到当前目录的 nohup out 文件中
lishixinzhi/Article/program/Java/hx/201311/25993在shell脚本中直接执行java就行了,比如写个a.sh文件
#!/bin/bash
java a.class
就行了,然后保存,执行bash a.sh脚本。如果要后台运行,则bash a.sh&
// 用法:Runtime.getRuntime().exec("命令")String shpath="/test/test.sh" //程序路径
Process process =null
String command1 = “chmod 777 ” + shpath
try {
Runtime.getRuntime().exec(command1 ).waitFor()
} catch (IOException e1) {
e1.printStackTrace()
}catch (InterruptedException e) {
e.printStackTrace()
}
String var="201102" /参数
String command2 = “/bin/sh ” + shpath + ” ” + var
Runtime.getRuntime().exec(command2).waitFor()
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)