bat文件改成sh文件在linux上运行java程序

最近公司迁移服务器,从windows系统改为linux系统,里面有一些老程序是直接用bat文件启动的。

在linux中需要启动.sh文件才行,所以需要将bat文件改成sh文件才行

先粘出bat文件和sh文件,里面需要的jar包比较多我就删了一部分jar包

bat:

@echo offs

set lib=E:\newSpace\androidBass\lib
set CLASSPATH=.;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar
set CLASSPATH=%CLASSPATH%;%lib%\activation-1.1.jar;%lib%\ant.jars-dbutils-1.1.jar
							
java main.DataMain
pause

sh:(因为新服务器系统jdk不是6,所以要给老工程指定一下JAVA_HOME)

#!/bin/sh

export JAVA_HOME=/Mobilebass/jdk6
export lib=/Mobilebass/SSJFDataSync/lib
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export CLASSPATH=$CLASSPATH:$lib/activation-1.1.jar:$lib/ant.jar:$lib/commons-codec-1.3.jar:$lib/commons-collections-3.1.jar
							
java main.DataMain

相同点:都是要设置一下CLASSPATH,里面把要引用的jar包全都引用进来

不同点:1.bat设置变量是用‘set’,而sh文件用‘export’;

2.bat的路径符号是'\',而bat是‘/’

3.bat文件分隔符是‘;’而sh是‘:’;

4.bat变量引用这么写 ‘%变量%’,而sh是 ‘$变量’

5.记得把文件名由.bat改为.sh

总得来说就这么多需要修改的东西,不过实际启动时还会有一些其他问题

问题一:报错找不到要启动的方法类

我遇到的这种问题一般是因为编码问题,windows和linux编码不同,直接修改并改名拷贝过来的文件由于编码不对无法运行

解决方法:把文件编码改成unix编码

先vim这个sh文件,敲 冒号 ,然后写这个

set ff=unix

然后 wq!保存退出即可

问题二:如何在后台运行并保存运行日志

1.在linux直接用 sh xx.sh 启动程序,只是在前台启动了程序,可以正常开到运行日志,但是这样就被限定在程序中无法再进行其他操作了,而且一旦ssh连接断开,程序运行也就停止了。这样就得让它在后台挂起运行,使前台还可以进行其他操作。

这就需要 nohup和&命令了

nohup是挂起的意思,就是启动后你还可以进行其他操作,但关闭ssh连接好像还是会停止程序

&是后台运行,一般需要俩一起配合使用

nohup sh xx.sh &

这样就可以正常后台运行了,ssh断开也没事了,不过前台运行按个 ctrl+c就停了,后台运行就只能直接杀进程才能停止了

我一般就用 ps -anp|grep 9000 查一下端口的进程,然后直接 kill 进程号

2.后台虽然启动了,在windows起码还有个小黑框可以看报错日志,linux上就没有显示日志的地方了,这样就得将程序在启动的时候将日志打印到一个文件中。

nohup sh xx.sh >> log.log &

这样就可以将日志打进 同目录 的log.log文件中,文件路径和文件名自己设置,文件没有的话它会自己创建,完了看报错信息的话直接看这个log文件就行了

 

 

 

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

豆趣编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值