2024-03-16 13:12:09 | 我爱编程网
对于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 $libs; do
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.lang.Runtime获取java应用运行时的已用堆内存和最大堆内存。shell可以通过java.lang.Runtime类中与内存相关方法来获取剩余的内存,总内存及最大堆内存,获取到堆使用的百分比及堆内存的剩余空间,从而获取java应用运行时的已用堆内存和最大堆内存。
我爱编程网(https://www.52biancheng.com)小编还为大家带来怎么在shell脚本中运行java代码的相关内容。
// 用法: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();
2023-12-24 20:21:11
2024-04-13 17:18:48
2024-04-09 17:44:01
2024-04-04 05:10:44
2024-03-31 15:14:06
2024-03-29 00:11:56