shell脚本启动jar
1、上传jdk的安装包到 /rootjdk-8u131-linux-x64.tar.gz
2、确认系统是否已经安装过jdkrpm -qa|grep jdkrpm -e _nodeps 软件名称 //如果检查到有安装就执行卸载命令
3、解压缩jdk的安装包到指定目录
tar -xvf jdk-8u131-linux-x64.tar.gz -C /usr/local/
4、进入解压缩目录
cd /usr/local
5、修改jdk的文件夹名称mv jdk1.8.0_131 jdk
6、配置环境变量修改环境变量配置文件:vi /etc/profile,点 i键进入编辑模式,按ESC 输入:wq 保存退出
7、重新加载环境配置,source /etc/profile
8、测试JDK安装是否ok
java -version
9、编写hello.java
vi Hello.java
然后ESC :wq退出
⑵ python 需要调用 /shell/目录下的run.sh。在脚本中调用的是一个jar包,jar包可
我用的spss版本是22.0,也是最近为了使用SPSS Python Essentials才安装的这个版本,大家可以参考这篇文章,以便正确安装spss 22.0。
安装好了spss22.0以后,如果你按照上面的安装教程进行的安装,SPSS Python Essentials就自动的安装在了你的spss22.0的安装目录下。接下来我们要进行必要的设置。
打开spss22的界面,打开编辑菜单下的【选项】
切换到脚本选项下,我们设置一下缺省脚本语言为python,点击【应用】
切换到【文件位置】选项下,设置python的位置,我们有两个选项,一个是随IBM SPSS安装的位置,这就是说,spss22在安装的时候自动安装了python2.7,如果我们想要使用这个python,就选择第一个选项;但是我现在有一个更好的建议,使用我们自己安装的python,也就是说在安装spss之前就有一个python安装好了,我现在想使用这个python,我们可以设置python的其他安装,然后找到这个python安装的目录,最后点击确定就可以了。为什么我建议使用第二种选择呢?因为我的python下有很多安装好的扩展包,需要在处理数据的时候调用,以后安装新的扩展包也很方便。如果使用是、随spss安装的python,还需要另行安装这些扩展包
设置完成以后,我们想要启动python的编辑窗口,需要在开始菜单中启动,如图所示。不能直接从python的安装目录里启动。
另外,spss22还有一个bug,我们虽然设置了Python的主目录,但是在新建脚本的时候,还是用的随spss安装的python的shell。所以想要使用python脚本,你就从上面那个方面里启动python shell
原作者:Delta数据工作室
⑶ 想请大神写一个在linux环境下用shell脚本控制jar的启动和停止,类似于一个后台服务那种的。
得看你的程序是什么样子 一般脚本中主要需要定义好你的启动用户 java的环境变量 jar需要调用的类和库 然后用case语句 来通过判断脚本后面键入的值 如start stop等一类的内容 来执行或结束jar程序
⑷ 关于一个shell脚本的解释问题
cd `dirname $0` //首先cd到脚本所在目录
jar_file=$(ls *.jar) //然后列出jar格式的文件,并赋值给jar_file变量
mole_name=${jar_file%.*} //删掉最后一个 . 及其右边的字符串,即扩展名
now_date=$(date +%Y-%m-%d) //按格式取当前日期
// 下面这句是查找名为变量 mole_name 的进程,然后再找java进程。// 然后显示出第一行,第二个域。总的来说就是查找进程的PID
pid=$(ps -ef|grep ${mole_name}|grep java|head -n 1|awk '{print $2}');
echo kill ${mole_name} pid:${pid} // 结束上面找到进程
kill -9 $pid
// 设置JVM运行参数,最小内存386mb,最大内存512mb
JAVA_OPTS="-Xms386m -Xmx512m" 设置
// 如果没有logs目录则新建if [ ! -d "logs" ]; then
mkdir logs
fi
// 重新执行变量jar_file变量指向的文件,并输出日志到logs目录下的.out文件中,同时重新查找pid。
nohup java $JAVA_OPTS -jar ${jar_file} $params > logs/${mole_name}.out 2>&1 &
pid=$(ps -ef|grep ${mole_name}|grep java|head -n 1|awk '{print $2}');// 显示进程信息。
echo mole:${mole_name} startup finish pid:${pid}.
sleep 0.5
echo ${pid} > ${mole_name}.pid
综上所述,这段代码用于重启spring boot进程。
⑸ shell脚本调用外部脚本的问题
估计是因为脚本1中使用了cd命令改变了当前路径,脚本2中继承了脚本1中的当前路径;而一旦脚本1结束回到主shell,这个当前路径也就不复存在。
如果在脚本2基于这个当前路径启动jar包前,脚本1结束了,那么当前路径肯定回到了主shell的设置去了,jar包就启动不了了。
任何外部调用的shell命令执行都会产生一个进程,都会有一个pid,即使最终执行是返回错误。
所以,两点建议:
1)脚本1调用2的命令行后加上 &,置入后台运行,这样就不会因为脚本1的结束而影响脚本2的运行。
2)脚本中尽量不要用cd命令跳转目录,尽量使用绝对路径。
⑹ linux shell调用java的jar包怎么写
这个应该不可能吧, 没有jre光是你自己的java代码怎么可能执行. 唯一的可能就是你把jre也一起打包进你的jar文件, 然后再shell里面运行jar文件的时候指定classpath到你的jar包路径下的jre目录
⑺ shell定时执行脚本启动jar程序的问题
在脚本里声明java环境变量,加上下列语句在#! /bin/sh底下,注意.后面有空格
. ~/.bash_profile
. /etc/profile
⑻ 在shell里面怎么执行一个可执行的jar,并且执行jar需要两个参数
把下面的代码保存到文件里面,然后赋予可执行权限,最后./文件名 执行
#!/bin/bash
java -jar xxxx.jar 参数1 参数2
⑼ Linux shell脚本启动一个jar为什么抛出NoClassDefFoundError的异常
这个并不是你脚本的问题,而是jar包里的代码问题:缺少了相关的class文件。问题应该是你的jar包运行需要第三方jar文件吧。