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

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

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

bat:

@echo offsset 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.jarjava main.DataMain
pause

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

#!/bin/shexport 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.jarjava 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文件就行了

bat文件改成sh文件在linux上运行java程序相关推荐

  1. Putty将公钥私钥文件改成ppk文件

    相信Git的使用已经成为IT人士必备的使用技能了吧.最近本人遇到了一个问题,就是再使用Git Extensions的可视化工具的时候,发现pull .push 等操作代码都会报错,说不支持git@. ...

  2. linux java jar打包_【Java】Java程序打包成jar包在Linux上运行

    当需要把在Windows上开发的Java程序用在Linux上运行时,就需要吧该Java程序打包成jar包上传到Linux上去运行. 1.Java程序用MyEclipse打包成可运行的jar包 (1)在 ...

  3. linux如何运行java程序,Linux环境下运行简单java程序

    一.安装java 1.下载jdk8 选择对应jdk版本下载.(Tips:可在Windows下载完成后,通过FTP或者SSH到发送到Linux上) 2. 登录Linux,切换到root用户 su roo ...

  4. LINUX中运行java程序的方法

    要想在linux中运行java的项目需要先将项目打包成war包或者jar包. 其中打包成war包需要将war包部署到tomcat服务器上才能运行.而打包成jar包可以直接使用java命令执行. 在li ...

  5. linux下crossover打开软件,如何借助CrossOver在Linux上运行Windows程序

    就因为有某个Windows应用程序是你非用不可,并不意味着就只能运行Windows.CodeWeaver的CrossOver Linux让你能够在Linux上运行许多流行的Windows应用程序.得到 ...

  6. Linux后台运行Java程序命令详解

    nohup java -jar -Xms512m -Xmx512m app3.jar > /var/log/java/app3.log 2>&1 & 上面是后台运行Java ...

  7. 如何在虚拟机(linux)下运行java程序

    Linux安装jdk环境 1.先通过原本的电脑在jdk官网下载jdk8,然后发送到我windows和linux的共享目录当中. 2.将压缩包解压到home目录下的java文件夹当中 3.使用命令sud ...

  8. 怎样把php文件改成固定大小,php修改上传文件大小限制的方法

    php修改上传文件大小限制的方法 发布时间:2020-07-02 09:09:51 来源:亿速云 阅读:97 作者:Leah 这篇文章将为大家详细讲解有关php修改上传文件大小限制的方法,文章内容质量 ...

  9. 配置JMC远程监控linux上的java程序

    被监测服务jar包需要加启动参数: -Dcom.sun.management.jmxremote.port=9999(被监测jmc端口) -Dcom.sun.management.jmxremote. ...

最新文章

  1. AI基础:入门人工智能必看的论文【附下载链接】
  2. freebsd+postfix+mysql+authdaemon+sasl2+bind9
  3. linux c 编译报错 Compile error : undefined reference to‘__atomic_fetch_add_4’ 解决方法
  4. Centos 6.5 初始安装无网卡驱动解决方法
  5. 【Tools】git操作总结
  6. SQL Server里的 ISNULL 与 Oracle 中的 NULLIF
  7. Android 对话框(Dialog)大全 建立你自己的对话框
  8. react学习(28)---react中componentWillReceiveProps
  9. 搭建内网yum服务器
  10. ASP運行Excel.Application出錯
  11. Oracle EBS-SQL (PO-5):采购订单控制信息查询.sql
  12. Python打包文件夹(zip/tar/tar.gz)
  13. Labview学习笔记(一)
  14. 聊聊微服务架构及分布式事务解决方案!
  15. 关于CSS的fixed定位
  16. Linux宝库名人轶事栏目 | 云与我
  17. WORD VBA 每一页第一段文字
  18. 你对计算机网络如何看待,谈谈你对计算机网络的认识
  19. 时过一年,我还在原地踏步么
  20. Eventide发布Physion Mk II声音结构分离多效果插件

热门文章

  1. 干电池电量采集_一种电池电量采集方法与流程
  2. Laravel 5.7用户注册邮箱激活的功能演示
  3. Mac无法连接到WiFi怎么办?帮您恢复在线的最佳解决方案
  4. 科目二考试的只言片语
  5. 【已解决】如何设置、更换LaTeX Beamer的字体?以及调整正文所使用的字体(如从Times New Roman改变为Arial)、定义字体大小等操作
  6. 大学英语B116-2020年12月
  7. 从svn拉下的代码无状态图标(绿色对勾)的解决方法
  8. 计算机视觉经典论文的参考论文目录
  9. 偶尔娱乐一下应该无妨?
  10. 高通平台开发系列讲解(AI篇)高通神经网络处理引擎 SNPE SDK架构