当前位置: 技术问答>linux和unix
linux下将普通java程序做为linux服务
来源: 互联网 发布时间:2016-12-19
本文导语: 我的实验环境 RHEL 5.4 jdk 1.6 javac -version 正常 javac Hello.class 正常 环境统统正常 我想要做的是将一个普通的java程序做成一个linux service Hello.java Hello.class 一个 于是在 /etc/rc.d/init.d 下创建一个 shell 名为 myJava 内...
我的实验环境
RHEL 5.4
jdk 1.6
javac -version 正常
javac Hello.class 正常
环境统统正常
我想要做的是将一个普通的java程序做成一个linux service
Hello.java
Hello.class 一个
于是在
/etc/rc.d/init.d 下创建一个 shell
名为 myJava
内容如下
然后 chkconfig --add myJava 成功
运行 service myJava start 报异常
/etc/init.d/myJava: line 13: java: command not found
按照异常,也就是 java 命令找不到。但是在后台终端可以 正常调用
也就是说 命令中的 java 没有加载在 /etc/profile 中的 jdk环境? (我的猜测)
看看有什么思路。
RHEL 5.4
jdk 1.6
javac -version 正常
javac Hello.class 正常
环境统统正常
我想要做的是将一个普通的java程序做成一个linux service
Hello.java
Hello.class 一个
于是在
/etc/rc.d/init.d 下创建一个 shell
名为 myJava
内容如下
#!/bin/bash
#chkconfig: 5 80 90
#description:myJava
#
# source function library
. /etc/rc.d/init.d/functions
start()
{
echo -n $"Starting $prog: "
echo "Hello Linux Service"
java -version
# echo "CLASSPATH: ${CLASSPATH}"
# echo "PATH: ${PATH}"
# java -classpath $CLASSES MyFrame
# /usr/work/space1/bin/MyFrame start
}
stop()
{
echo -n $"Stopping $prog: "
javac -version
}
restart()
{
echo -n $"Reloading $prog: "
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
*)
echo $"Usage: $0 {start|stop|restart}"
RETVAL=1
esac
exit $RETVAL
然后 chkconfig --add myJava 成功
运行 service myJava start 报异常
/etc/init.d/myJava: line 13: java: command not found
按照异常,也就是 java 命令找不到。但是在后台终端可以 正常调用
也就是说 命令中的 java 没有加载在 /etc/profile 中的 jdk环境? (我的猜测)
看看有什么思路。
|
最简单的方法,在你的init。d下的java脚本中手动添加PATH变量就ok了