-
2021-05-10 08:28:34
在linux服务器上用jar命令解压jar包时,提示找不到jar命令。
但是用java -version查看jdk版本,又可以显示出jdk版本。
echo $JAVA_HOME查看环境变量路径,找不到。
查找jdk安装目录:
(网上搜到的方法:https://www.linuxidc.com/Linux/2015-08/122353.htm)
which java
首先要申明一下which java是定位不到安装路径的。which java定位到的是java程序的执行路径。网上的资料都是人云亦云,完全不去思考。那么怎么定位到java的安装路径呢?下面我们来看看例子吧,如下所示:
[root@localhost ~]# java -version
java version "1.7.0_65"
OpenJDK Runtime Environment (rhel-2.5.1.2.el6_5-x86_64 u65-b17)
OpenJDK 64-Bit Server VM (build 24.65-b04, mixed mode)
[root@localhost ~]# which java
/usr/bin/java
[root@localhost ~]# ls -lrt /usr/bin/java
lrwxrwxrwx. 1 root root 22 Aug 17 15:12 /usr/bin/java -> /etc/alternatives/java
[root@localhost ~]# ls -lrt /etc/alternatives/java
lrwxrwxrwx. 1 root root 46 Aug 17 15:12 /etc/alternatives/java -> /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java
[root@localhost ~]#
[root@localhost ~]# cd /usr/lib/jvm
[root@localhost jvm]# ls
java-1.6.0-openjdk-1.6.0.0.x86_64 java-1.7.0-openjdk-1.7.0.65.x86_64 jre jre-1.6.0 jre-1.6.0-openjdk.x86_64 jre-1.7.0 jre-1.7.0-openjdk.x86_64 jre-openjdk
查看这些文件夹下面的内容,发现服务器只是安装了jre,并没有安装jdk,而jar命令是jdk中的,不是jre中的。
解决办法只能安装下jdk了。
如果安装了jdk,有jar命令,只是没加到环境变量中,可以通过以下方式进行添加。
在/usr/bin目录下创建jar的软连接。
[luopu@TESTWEB1_13 ~]$cd /usr/bin
[root@TESTWEB1_13 ~]#ln -s /opt/freeware/old/jdk1.7.0_79/bin/jar jar
添加后,运行jar,看是否成功。
更多相关内容 -
Linux运行jar包命令
2021-01-20 11:52:36linux下运行jar包的命令 1、java -jar xxxxx.jar // 当前xshell窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出 2、java -jar xxxxx.jar & //当前shell窗口不被锁定,但是当窗口关闭时,程序...一. linux下运行jar包的命令
1、java -jar xxxxx.jar // 当前xshell窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出2、java -jar xxxxx.jar & //当前shell窗口不被锁定,但是当窗口关闭时,程序中止运行。
3、nohup Java -jar xxxxxx.jar & //意思是不挂断运行命令,当账户退出或终端关闭时,程序仍然运行
二. 下面详细介绍第三种运行方式
/*下面介绍如何关闭第三种运行的jar包程序/
//查看进程,找到对应java程序的进程号(PID值)
#ps -ef
//关闭进程
#kill -9 PID
//centos7.3系统 直接使用入下命令也可以
#kill PIDnohup
nohup 命令运行由 Command参数和任何相关的 Arg参数指定的命令,忽略所有挂断(SIGHUP)信号。在注销后使用 nohup 命令运行后台中的程序。要运行后台中的 nohup 命令,添加 & ( 表示“and”的符号)到命令的尾部。nohup 是 no hang up 的缩写,就是不挂断的意思。
nohup命令:如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。
在缺省情况下该作业的所有输出都被重定向到一个名为nohup.out的文件中。
nohup和&的区别
& : 指在后台运行nohup : 不挂断的运行,注意并没有后台运行的功能,就是指,用nohup运行命令可以使命令永久的执行下去,和用户终端没有关系,例如我们断开SSH连接都不会影响它的运行;
三. linux下nohup命令的使用
现对上面的命令进行下解释用途:不挂断地运行命令。
语法:nohup Command [ Arg … ] [ & ]
描述:nohup 命令运行由 Command 参数和任何相关的 Arg 参数指定的命令,忽略所有挂断(SIGHUP)信号。在注销后使用 nohup 命令运行后台中的程序。要运行后台中的 nohup 命令,添加 & ( 表示“and”的符号)到命令的尾部。操作系统中有三个常用的流:
0:标准输入流 stdin
1:标准输出流 stdout
2:标准错误流 stderr
一般当我们用 > console.txt,实际是 1>console.txt的省略用法;< console.txt ,实际是 0 < console.txt的省略用法。下面步入正题:
nohup ./start-dishi.sh >output 2>&1 &
解释:带&的命令行,即使terminal(终端)关闭,或者电脑死机程序依然运行(前提是你把程序递交到服务器上);
2>&1的意思
这个意思是把标准错误(2)重定向到标准输出中(1),而标准输出又导入文件output里面,所以结果是标准错误和标准输出都导入文件output里面了。 至于为什么需要将标准错误重定向到标准输出的原因,那就归结为标准错误没有缓冲区,而stdout有。这就会导致 >output 2>output 文件output被两次打开,而stdout和stderr将会竞争覆盖,这肯定不是我门想要的.
这就是为什么有人会写成: nohup ./command.sh >output 2>output出错的原因了最后谈一下/dev/null文件的作用,这是一个无底洞,任何东西都可以定向到这里,但是却无法打开。 所以一般很大的stdou和stderr当你不关心的时候可以利用stdout和stderr定向到这里>./command.sh >/dev/null 2>&1
-
Linux下编译打包Java成Jar并成功执行
2021-03-04 04:24:241.Linux下编译Java源文件:1.1 编译命令:javac [-d] [-o] [-verbose] [-classpath][-sourcepath]-d: 指定生成的.class文件存放目录,一般省略则默认放在java源文件同一目录下;-o: 这个选项告诉javac优化内联的...1.Linux下编译Java源文件:
1.1 编译命令:
javac [-d] [-o] [-verbose] [-classpath][-sourcepath]
-d: 指定生成的.class文件存放目录,一般省略则默认放在java源文件同一目录下;
-o: 这个选项告诉javac优化内联的static,final以及privite成员函数所产生的码;
-verbose:此选项告知java显示出有关被编译的源文件和任何被调用类库的信息;
如-verbose:class能看到各种加载的信息,-verbose:gc 是garbagecollection 的信息。
-classpath:设定编译时要用到的类路径,可以是目录,jar文件,zip文件(里面都是class文件);
值得注意的是,此classpath可以简写为cp,当用到多个类时各类路径之间用 : 相隔。
此项也可以省略,省略则默认使用环境变量$CLASSPATH路径。
classpath中的内容是会覆盖掉环境变量CLASSPATH里面的设定。
所以一般classpath的设定都是:当前目录加环境变量CLASSPATH设置目录,如
javac -cp .:$CLASSPATH abc.java
-sourcepath:设定要编译的java文件路径,可以是目录,jar文件,zip文件(里面都是java文件);
注意,若编译的是jar包中的主类文件abc.java时,一般编译整个包javac edu.test.jar或者包文件夹javac ./edu/test。
一般当有多个java文件需要编译时,可以逐一列出,也可以将文件名列在一个文件中,名称间用空格或者回车行来进行分隔,然后在命令行中使用该列表名,名字前冠以@字符,如:
javac @usr/test/sourcefile.list 编译目录usr/test 下的sourcefile.list中的java文件
1.2 说明:
1)一般对于只有一个出口主函数main,其他java文件是以内联类的形式被主函数调用的多个java文件组成的工程来说,编译时只需要对出口主函数main所在java文件编译即可,工程中的其他java文件会自动关联编译;
2)对于程序中调用到了第三方类或者package的情况,则一般先需要在程序文件中加入import第三方类或者jar包;
如 import edu.test.abc 引用jar包edu.test下的abc.java,为稳妥,一般都引用整个包内文件import edu.test.*。编译时需要将jar包路径或者文件夹根目录,如edu的路径加入到classpath中。一般常把jar包或者根文件夹拷贝到当前目录下,指定classpath为.,编译器自动会从当前目录开始寻找。
1.3 实例:
javac -cp .:/home/Test/lib/commons-collections-3.2.2.jar -d . *.java
2.将Java源文件打成Jar包:
2.1 打包命令:
jar {ctxu}[vfm0M][jar-文件] [manifest-文件] [-C 目录] 文件名
其中 {ctxu} 是 jar命令的子命令,每次 jar 命令只能包含 ctxu 中的一个,它们分别表示:
-c:创建新的 JAR 文件包;
-t:列出 JAR 文件包的内容列表;
-x:展开 JAR文件包的指定文件或者所有文件;
-u:更新已存在的 JAR 文件包(添加文件到 JAR 文件包中);
特别注意,在参数的下达中, c/x/t/u仅能存在一个,不可同时存在!因为不可能同时压缩与解压缩。
-z:是否同时具有 gzip的属性?亦即是否需要用 gzip 压缩;
-j:是否同时具有 bzip2的属性?亦即是否需要用 bzip2 压缩;
-v:压缩的过程中显示文件!这个常用,但不建议用在背景执行过程;
-f:指定 JAR文件名,通常这个参数是必须的;
请留意,在 f之后要立即接档名喔!不要再加参数!
比如:
『 tar -zcvfP tfile sfile』就是错误的写法,
『 tar -zcvPf tfile sfile』才是正确的写法。
-p:使用原文件的原来属性(属性不会依据使用者而变;
-P :可以使用绝对路径来压缩;
-N:比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的文件;
-excludeFILE:在压缩的过程中,不要将 FILE 打包;
-m:指定需要包含的 MANIFEST清单文件;
-0:只存储,不压缩,这样产生的 JAR文件包会比不用该参数产生的体积大,但速度更快;
-M:不产生所有项的清单(MANIFEST〕文件,此参数会忽略-m 参数;
[jar-文件]:即需要生成、查看、更新或者解开的 JAR 文件包,它是 -f 参数的附属参数;
[manifest-文件]:即MANIFEST 清单文件,它是 -m 参数的附属参数
[-C 目录]表示转到指定目录下去执行这个 jar 命令的操作,它相当于先使用 cd 命令转该目录下再执行不带 -C 参数的命令,它只能在创建和更新 JAR文件包的时候可用。
文件名:指定一个文件/目录列表,这些文件/目录就是要添加到 JAR 文件包中的文件/目录。如果指定了目录,那么jar命令打包的时候会自动把该目录中的所有文件和子目录打入包中。
2.2 实例:
jar -cvf IDMatch_V1.jar *.class
3.运行jar包:
3.1 运行命令:
1、java -jar xxxxx.jar
当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出。
2、java -jar xxxxx.jar &
当前ssh窗口不被锁定,但是当窗口关闭时,程序中止运行。
3、nohup Java -jar xxxxxx.jar &
不挂断运行命令,当账户退出或终端关闭时,程序仍然运行。
3.2 实例:java -cp .:/home/Test/lib/commons-collections-3.2.2.jar:./Test.jar com.test.datahandle.Test
-
linux jar包相关命令
2021-12-25 21:49:22启动,后台运行jar [root@VM-0-4-centos java]# nohup java -jar /home/spring_one_demo-0.0.1-SNAPSHOT.jar > spring.log 2>&1 & spring.log,是nohup的相关命令,表示将原本会打印在控制台的文件...启动,后台运行jar
[root@VM-0-4-centos java]# nohup java -jar /home/spring_one_demo-0.0.1-SNAPSHOT.jar > spring.log 2>&1 &
spring.log,是nohup的相关命令,表示将原本会打印在控制台的文件打印到spring.log里。该文件如果未指定路径,会在当前目录生成。
spring.log 2>&1 & 不写的话会报
忽略输入并把输出追加到"nohup.out"或者nohup
运行成功会返回端口号
停止jar
1找到jar的pid
方法一:根据端口号查询(如果你知道运行端口好的话)
netstat -nlp | grep :8081
8081 正在运行我们的3368 jar 程序
方法二:查询所有jar程序,根据包的名字找pidps -ef | grep java
有两个jar程序,根据包的名字找到我们运行的jar,前面的3368即为pid
2 根据进程号pid,结束进程
kill -9 3368
-
Linux下运行jar包命令
2021-01-07 15:58:47说明:用这种方法启动后,不能继续执行其它命令了,如果想要继续执行其它命令,就都打断,打断一般用ctrl+c 2.java -jar demo.jar & 第2种在第1种方式的基础上在命令的结尾增加了&,&表达的意思是在后台... -
Linux 运行jar包命令(Cent OS 7后台运行jar包)
2021-05-10 03:48:29Linux 运行jar包命令如下:方式一特点:当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出那如何让窗口不锁定?方式二java -jar shareniu.jar &&代表在后台运行。特定:当前ssh窗口不... -
Linux部署jar包命令大全
2020-10-05 14:59:20流程概要 rz # 使用rz或其它工具将jar包上传到服务器指定目录 ps # 查看jar包进程,并记录进程id ...nohup java -jar demo-0.0.1-SNAPSHOT.jar > server.log 2>&1 & tail # 查看启动日志 tail -
新手Linux部署系列——idea打包jar,maven打包jar以及部署和执行等
2021-09-10 15:06:37新手文章,若有不对之处,欢迎大佬们评论与改正,希望大家学习到东西的快乐是...前提:jar包能直接通过cmd窗口,在jar所在路径执行命令java -jar xxx.jar运行。 打成一个jar包执行有要求的: 1.程序依赖包都在jar包中 2 -
linux下执行jar包命令行,linux后台执行jar包命令
2021-05-17 10:06:17在linux下我们可以在后台运行jar包命令。那么它的具体方法是怎样的呢?下面由学习啦小编为大家整理了linux后台运行jar包命令的相关知识,希望对大家有所帮助。Linux 运行jar包命令方法一[plain] view plain copyjava ... -
Linux 环境下部署 jar 包
2021-01-07 09:50:461. 使用maven工具将项目打包,生成jar包; 2. 将jar包复制到Linux系统中的某个文件夹下,此时采用xshell与xftp工具完成,如下: 3. 编写startup.sh启动程序。新建startup.sh文件,使用vim编辑如下: nohup java -... -
Linux: 将Java程序打包为jar包,并且在linux上运行
2021-10-12 15:39:14当我们用Jar命令打完包后,会在根目录下面创建META-INF目录,该目录下面会有一些对该Jar包信息的描述,其中肯定会有一个MANIFEST.MF文件,该文件包含了该Jar包的版本、创建人和类搜索路径等信息,当然如果是可执行... -
Maven项目纯命令式打包成可运行.jar步骤到部署到Linux系统服务器可运行项目
2019-04-25 21:53:49首先让我们来看Maven项目Backend打包指南 工程介绍 打包步骤 工程介绍 utils(工具模块) service(数据模块) billing(业务模块) 2.打包步骤 首先要打包utils模块,找到本地工作路径 列子:E:\... -
Linux上部署maven打包的jar
2021-02-18 11:04:53首先需要把pom.xml的packaging标签设置为jar,packaging这个标签决定了使用maven快捷打包 是打包成war包还是jar,打包成war需要使用tomcat,而jar包不需要tomcat吗,但是需要jdk。 在把需要打包的项目clear... -
Linux下打包压缩war、解压war包和jar命令
2021-03-02 17:52:25情景:把Project文件夹下的文件打包成project.war 1. 打包 jar -cvfM0 project.war /Project 说明: -c 创建war包 -v 显示过程信息 -f 指定 JAR 文件名,通常这个参数是必须的 ...使用不带任何的 jar 命令我们可以. -
Linux发布Springboot jar包命令(笔记整理)
2021-08-21 15:46:30nohup java -jar projectName.jar &>projectName.log & 以守护进程不间断的运行jar程序,并且把运行日志重定向输出到projectName.log文件 ... 代表在后台运行,开启一个新的线程执行该命令 -
Linux利用Shell脚本部署jar包项目的完整步骤
2020-09-14 21:25:28主要给大家介绍了关于Linux如何利用Shell脚本部署jar包项目的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧 -
linux下的jar命令
2019-08-21 09:14:26制作可执行的JAR文件包及jar命令详解 常常在网上看到有人询问:如何把 java 程序编译成 .exe 文件。通常回答只有两种,一种是制作一个可执行的 JAR 文件包,然后就可以像.chm 文档一样双击运行了;而另一种是使用 ... -
经常使用的linux下jar包管理命令
2021-05-09 00:20:19一、查看jar目录:jar tvffilename.jar二、解压包:jarxvdfilename.jar三、打包:jar cvf filename.jar a.classb.class四、用一个存在的清单文件‘manifest’(文件名任意) 打包jarcvfmfilename.jarmanifesta.classb.... -
【Java】Java程序打包成jar包在Linux上运行
2021-02-12 23:06:46当需要把在Windows上开发的Java程序用在Linux上运行时,就需要吧该Java程序打包成jar包上传到Linux上去运行。1.Java程序用MyEclipse打包成可运行的jar包(1)在MyEclipse中选中需要打包的项目,点击右键,选择:Export... -
将idea的项目打包成jar上传至linux运行传参
2022-01-21 17:01:19先是idea的jar包 ...选择你刚才点的jar包点build ...运行jar包命令 java -jar xxx.jar "参数" "参数" 我的代码块需要三个参数 这是我的执行命令 fileReadRunnable.run(args[0],args[1],args[2]);... -
linux下命令行运行jar文件出错
2021-05-12 18:07:01我将程序打包成了jar包,在windows下执行时正确的,但是放在linux下执行就不对了。windows目录下包括jar包和一个lib文件夹,此文件夹下是需要的其他类库。linux目录是一样的结构。但是在linux下执行,可以执行main,... -
linux下jar命令与jar包
2015-09-17 22:44:12原文链接: ... JAR包是Java中所特有一种压缩文档,其实大家就可以把它理解为.zip包。 当然也是有区别的,JAR包中有一个META-INF\MANIFEST.MF文件,当你找成...JAR包是由JDK安装目录\bin\jar.exe命令生成的,当我们安装好J -
Linux命令替换jar包中文件
2021-05-16 17:45:20jar tvf *****.jar | grep {fileName}执行结果:> jar tvf pkpassserver-0.0.1-SNAPSHOT.jar | grep cer.p12> 3289 Tue Nov 27 16:30:46 CST 2018 BOOT-INF/classes/static/cers/cer.p12二、... -
Linux下打包压缩war、解压war包和jar命令(示例代码)
2021-05-10 19:43:08打包jar -xvf project.war /project_a说明:-c 创建war包-v 显示过程信息-f 指定 JAR 文件名,通常这个参数是必须的-M 不产生所有项的清单(MANIFEST〕文件,此参数会忽略 -m 参数-0 这个是阿拉伯数字,只打包不压缩... -
Linux运行jar包
2021-10-09 17:48:32而打包成jar包可以直接使用java命令执行。 在linux系统中运行jar包主要有以下几种方式。 一、java -jar XXX.jar 这是最基本的jar包执行方式,但是当我们用ctrl+c中断或者关闭窗口时,程序也会中断执行。 二、... -
java打包jar后,执行启动命令让直在linux上一直运行
2018-07-20 08:55:49nohup java -jar xxx.jar & -
使用maven将jar打包到本地仓库,及linux常用命令
2019-06-04 15:49:00(jar的版本11.1.0.7.0,C:\Users\zwk\Desktop\ojdbc6.jar所在的位置)mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11.1.0.7.0 -Dpackaging=jar -Dfile=C:\User... -
Linux虚拟机如何运行IDEA打包的jar包
2021-10-27 14:43:47这样jar包就打包好了,我们进入到项目目录下去找一下jar包所在位置, 将jar包通过Xftp传入到虚拟机中 输入命令hadoop jar jar包名 主类名路径 /输入路径 /输出路径 可以参考我下面这个命令 hadoop jar hadoopStu-...