精华内容
下载资源
问答
  • linux系统中执行jar包,我们需要先杀掉对应端口的进程,然后执行java -jar命令,启动服务
  • Linux运行jar执行文件,内附说明文件,先看说明文件再修改一下执行文件里面的内容需要根据情况而定,通过修改内容后就可在Linux系统下后台运行jar包,并打印日志
  • 两种情况: 1、linux下运行sudo Java ...2、linux下运行sh文件时提示“ java: command not found”。 解决办法: sudo vim /etc/sudoers 在Defaults secure_path 中添加Java的路径,如下: Defaults secure_path...

    两种情况:

    1、linux下运行sudo Java 时提示“sudo: java: command not found”。

    2、linux下运行sh文件时提示“ java: command not found”。

    解决办法:

    sudo vim /etc/sudoers
    在Defaults secure_path 中添加Java的路径,如下:

    Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/opt/public/jdk1.8.0_161/bin

    退出保存即可

    注意:如果是在 sh文件中执行,使用  sudo java  执行jar可能也会报错,此时去掉 sudo 即可

    展开全文
  • linux执行jar和war

    千次阅读 2019-03-26 09:22:19
    一、发布java可执行JAR包方法 (1)首先在Eclipse上右击工程项目,如下图所示: (2)然后在弹出的窗口中选择:Java-->Runnable JAR file,然后点击:Next,如下图所示: (3)然后选择需要打包的程序和...

    一、发布java可执行JAR包方法

    (1)首先在Eclipse上右击工程项目,如下图所示:

    (2)然后在弹出的窗口中选择:Java-->Runnable JAR file,然后点击:Next,如下图所示:

     

     

    (3)然后选择需要打包的程序和保存的地方,然后点击:Finish,如下图所示:

     

     

    二、打包后的jar包在Linux上运行

    (1)部署Java运行环境

         1、Linux上确定已经有了Java的运行环境(1.是否安装好了JDK,并且配置好相应的环境变量),输入命令:java –version  确定

     

    2、使用Xftp文件传输工具,将本地打包好的Runnable JAR文件上传到Linux服务器上;

    3、使用Xshell工具登录定时器服务器-Linux(100.101.69.164)在命令行输入:java -jar TimerTask.jar就可以运行了,其中TimerTask.jar就是之前打包好的Java程序的jar包

    如果按照:java –jar TimerTask.jar执行jar包,当我们退出putty或Xshell终端时,TimerTask.jar这个程序就会停止

    将jar程序设置成后台运行:nohup Java –jar TimerTask.jar & (注意:nohup 命令的作用就是让程序在后台运行,不用担心关闭连接进程断掉的问题)

    4、如果想要杀掉运行中jar程序,查看进程命令为:ps aux|grep TimerTask.jar  将会看到此jar的进程信息,找到jar的pid,杀掉命令为:

     Kill -9 pid---进程号

    二、定时任务接口发布方法

    一、打包War包,如下图所示:

    二、发布War包到Linux服务器上

    (1)下载apache-tomcat-8.5.23.zip

    在本地解压后,修改apache-tomcat-8.5.23\tomcat\conf路径下server.xml文件,在文件中加入以下配置

          <Context path="strategy" debug="0" docBase="strategy.web.war" reloadable="true"/> 如下图所示

     

    2)发布Tomcat和War包

    1.把打包好的strategy.web.war包放入将要发布的tomcat下(路径如下:apache-tomcat-8.5.23\tomcat\webapps)

    2.使用Xftp工具在服务器上新建文件夹strategy

    2.使用工具Xftp把配置好的Tomcat包上传到Linux服务器上的strategy文件夹下  

    使用xshell工具连接linux服务器执行以下命令

    # netstat -apn|grep 8080  查看端口8080是否被占用命令

    #cd  strategy \apache-tomcat-8.5.23\apache-tomcat-8.5.23\bin  进入tomcat的bin目录

    #  ./startup.sh 启动Tomcat

    #  ./shutdown.sh  关闭Tomcat

     

    # ps -ef|grep java   查看Tomcat是否关闭

    # chmod 777 ./startup.sh 修改文件权限命令

    以下命令不一定要执行: 1.   systemctl stop firewalld.service  #停止firewall  2.  systemctl disable firewalld.service  #禁止firewall开机启动

    注:记住若执行启动或停止命令被拒绝,记得修改文件权限(可以使用Xftp工具)如下图

    展开全文
  • Linux运行jar

    2019-05-05 10:50:25
    Linux后台运行java的jarLinux 运行jar包命令如下: 方式一 java -jar shareniu.jar 特点:当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出 那如何让窗口不锁定? 方式二 java -jar ...

    Linux后台运行java的jar包

    Linux 运行jar包命令如下:

    方式一

    java -jar shareniu.jar
    

    特点:当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出

    那如何让窗口不锁定?


    方式二

    java -jar shareniu.jar &
    

    &代表在后台运行。

    特定:当前ssh窗口不被锁定,但是当窗口关闭时,程序中止运行。

    继续改进,如何让窗口关闭时,程序仍然运行?


    方式三

    nohup java -jar shareniu.jar &
    

    nohup 意思是不挂断运行命令,当账户退出或终端关闭时,程序仍然运行

    当用 nohup 命令执行作业时,缺省情况下该作业的所有输出被重定向到nohup.out的文件中,除非另外指定了输出文件。


    方式四

    nohup java -jar shareniu.jar >/dev/null  &  
    

    解释下 >temp.txt

    command >out.file

    command >out.file是将command的输出重定向到out.file文件,即输出内容不打印到屏幕上,而是输出到out.file文件中。


    可通过jobs命令查看后台运行任务

    jobs
    

    那么就会列出所有后台执行的作业,并且每个作业前面都有个编号。
    如果想将某个作业调回前台控制,只需要 fg + 编号即可。

    fg 23
    

    查看某端口占用的线程的pid

    netstat -nlp |grep :9181

    展开全文
  • Linux环境下运行jar包的几种方式(附详细案例)

    万次阅读 多人点赞 2020-02-03 11:29:02
    二、运行jar包 1、方式一 2、方式二 3、方式三 三、脚本方式 一、 引言 在学习过程中,我们大部分都是在windows等非Linux环境下进行开发、测试、部署等。但是在实际的工作当中,应用基本都是部署在Linux环境...

    目录

     

    一、 引言

    二、运行jar包

    1、方式一

    2、方式二

    3、方式三

    三、脚本方式


    一、 引言

        在学习过程中,我们大部分都是在windows等非Linux环境下进行开发、测试、部署等。但是在实际的工作当中,应用基本都是部署在Linux环境下,因此我们要熟悉Linux环境下应用的部署测试。如果做开发的还要兼职运维工作的话,那就更有必要掌握Linux环境下应用的部署方式。

          在Linux当中,运行jar包主要有以下几种方式。

          为了直观,本文还是以一个实际的项目作为演示,当然,是个极其简单的项目。

          首先,新建一个maven项目,pom.xml文件如下:

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
    
        <groupId>ztt</groupId>
        <artifactId>test_jar</artifactId>
        <version>1.0-SNAPSHOT</version>
        <packaging>jar</packaging>
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jar-plugin</artifactId>
                    <configuration>
                        <archive>
                            <manifest>
                                <addClasspath>true</addClasspath>
                                <classpathPrefix>lib/</classpathPrefix>
                                <mainClass>hello.TestJar</mainClass>
                            </manifest>
                        </archive>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <configuration>
                        <source>1.8</source>
                        <target>1.8</target>
                        <!-- 项目编码-->
                        <encoding>UTF-8</encoding>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    
    
    </project>

          注意:在pom.xml里面通过<mainClass>hello.TestJar</mainClass>指定了主类,如果不指定,可能会出现“xxx.jar中没有主清单属性”的问题。

          然后,编写一个带main方法的类。

    package hello;
    
    public class TestJar {
        public static void main(String[] args) {
            try {
                System.out.println("TestJar start!");
                for (int i = 0; i < 3; i++) {
                    System.out.println("i:" + i);
                }
                // 暂停
                Thread.sleep(1000 * 10);
                System.out.println("TestJar finish!");
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
    

         

          如图所示,代码仅实现了简单的打印功能。在程序执行的过程中,我特意让主线程暂停了10秒,是为了在测试过程中方便观察。

          然后,将此jar包放到Linux环境下(建议使用winSCP操作),本文示例如下:

          然后,cd进入到此目录,下面我们开始就通过不同的方式来运行此jar包。

    二、运行jar包

     

    1、方式一

          命令格式:java -jar jar包名

          [root@localhost test_jar]# java -jar test_jar-1.0-SNAPSHOT.jar

          执行结果如下:

          10s之后,打印最后一行内容。

          分析:执行此命令的时候,程序会先打印前4行内容,然后暂停10s,当前窗口被锁定,无法进行其它操作,直到暂停时间结束,main方法执行完毕,当前窗口才解除锁定。

         因此,我们可以看到,此方式运行jar包一个极其严重的缺点:锁定窗口。当然,我可以通过CTRL + C打断程序运行,或直接关闭窗口,程序退出,不过在实际的工作环境中,是绝对不会允许这种粗暴的方式终止的运行,毕竟我们的项目都是给用户提供服务的,程序要是退出了,公司还营不营业了。

    2、方式二

          命令格式:java -jar jar包名 &

          [root@localhost test_jar]# java -jar test_jar-1.0-SNAPSHOT.jar &

          执行结果如下:

          分析:&代表在后台运行。优点是当前ssh窗口不被锁定,但是当窗口关闭时,程序终止运行。

          那么我们就会想,如何继续改进,让窗口关闭时,程序仍然运行呢?

    3、方式三

          方式三主要是引入nohup命令,具体使用主要包括下面三种方式。

    (1)命令格式:nohup java -jar jar包名 &

          [root@localhost test_jar]# nohup java -jar test_jar-1.0-SNAPSHOT.jar &     

          nohup 意思是不挂断运行命令,当账户退出或终端关闭时,程序仍然运行。

          当用 nohup 命令运行jar包时,缺省情况下该应用的所有输出被重定向到nohup.out的文件中,除非另外指定了输出文件。

          执行结果如下:

          然后,我们在当前目录下看到了nohup.out文件。

    打开nohup.out文件,发现前面所有的输出都重定向到了此文件里面。

    (2)nohup java -jar jar包名 > 文件名 &

         [root@localhost test_jar]# nohup java -jar test_jar-1.0-SNAPSHOT.jar > test.txt &

          执行结果如下:

    然后,再当前目录下出现test.txt文件。

          大家文件,发现输出都重定向到了test.txt文件里面。

    (3)nohup java -jar jar包名 >output 2>&1 &

          [root@localhost test_jar]# nohup java -jar test_jar-1.0-SNAPSHOT.jar >output 2>&1 &

          linux shell中"2>&1"含 义:

          对于& 1 更准确的说应该是文件描述符 1,而1表示标准输出stdout。
          对于2 ,表示标准错误stderr。
          2>&1 的意思就是将标准错误重定向到标准输出。

          而标准输出又导入文件output里面,所以结果是标准错误和标准输出都导入文件output里面了。

          至于为什么需要将标准错误重定向到标准输出的原因,那就归结为标准错误没有缓冲区,而stdout有。这就会导致 >output 2>output, 文件output被两次打开,而stdout和stderr将会竞争覆盖,这肯定不是我门想要的。

          执行命令,结果如下:

          再当前目录下,出现了output文件,打开查看内容,在第一行出现了一行乱码(编码问题,不影响程序运行)。

          乱码处理之后的原文是:nohup: 忽略输入。其实就是标准错误的内容,因为>output 2>&1的作用是将标准输出和标准错误都重定向到output文件里。

    (4)nohup java -jar jar包名 >/dev/null 2>&1 &

          [root@localhost test_jar]# nohup java -jar test_jar-1.0-SNAPSHOT.jar >/dev/null 2>&1 &

          这里谈一下/dev/null文件的作用。/dev/null是一个虚拟的空设备,可以看作是一个"黑洞",黑洞的特性是只进不出,哪怕是光都逃不掉,/dev/null亦是如此。

          它等价于一个只写文件,所有写入它的内容都会永远丢失。如果尝试从它那儿读取内容,那么什么也读不到。

          明白了/dev/null之后,我们再来看这个命令。>/dev/null 表示将标准输出信息重定向到"黑洞",2>&1 表示将标准错误重定向到标准输出,由于标准输出已经重定向到“黑洞”了(即:标准输出此时也是"黑洞"),再将标准错误输出定向到标准输出,相当于标准错误输出也被定向至“黑洞”。

          执行上述命令,不同于前面的那些命令,可以看到各种标准输出,这里什么也看不到。

    三、脚本方式

          脚本方式的本质依然是上面介绍的那些命令,只不过shell脚本更加的方便,并且可以干更多的事情。

          这里依然以test_jar-1.0-SNAPSHOT.jar这个小demo为例,编写如下脚本test_jar.sh:

    #!/bin/bash
    
    #这里可替换为你自己的执行程序,其他代码无需更改
    APP_NAME=test_jar-1.0-SNAPSHOT.jar
    
    
    #使用说明,用来提示输入参数
    usage() {
        echo "Usage: sh 脚本名.sh [start|stop|restart|status]"
        exit 1
    }
     
    #检查程序是否在运行
    is_exist(){
      pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}' `
      #如果不存在返回1,存在返回0     
      if [ -z "${pid}" ]; then
       return 1
      else
        return 0
      fi
    }
     
    #启动方法
    start(){
      is_exist
      if [ $? -eq "0" ]; then
        echo "${APP_NAME} is already running. pid=${pid} ."
      else
        nohup java -Xmx512m -Xms512m -jar $APP_NAME  > test2.txt 2>&1 &
        echo "${APP_NAME} start success"
      fi
    }
     
    #停止方法
    stop(){
      is_exist
      if [ $? -eq "0" ]; then
        kill -9 $pid
      else
        echo "${APP_NAME} is not running"
      fi  
    }
     
    #输出运行状态
    status(){
      is_exist
      if [ $? -eq "0" ]; then
        echo "${APP_NAME} is running. Pid is ${pid}"
      else
        echo "${APP_NAME} is NOT running."
      fi
    }
     
    #重启
    restart(){
      stop
      start
    }
     
    #根据输入参数,选择执行对应方法,不输入则执行使用说明
    case "$1" in
      "start")
        start
        ;;
      "stop")
        stop
        ;;
      "status")
        status
        ;;
      "restart")
        restart
        ;;
      *)
        usage
        ;;
    esac
    
    

          然后,执行这个脚本:

     

     

    展开全文
  • 上传文件linux,通过java代码上传文件linux中所依赖的jar
  • Linux下通过sh脚本执行jar文件

    万次阅读 2013-09-26 19:06:08
    如果需要其他的jar包,通过下面的参数指定:(注意:Class-Path:后需要一个空格,多个jar包间需要一个空格,且一行字符不能太多,换行时需要在jar包前面加一个空格。) Class-Path: ./lib/jConnect2.jar
  • 文件执行vi或vim。 vim xxx.jar 执行之后,会显示jar包或zip包中的文件。 通过以下命令根据文件名字查找文件: /index.ftl 比如上面的命令就直接查找出index.ftl文件。然后光标移动到此文件,点击回车,进入...
  • linux环境下,批量启动程序jar
  • linux后台运行可执行jar文件

    千次阅读 2018-12-12 14:45:11
    linux下利用nohup后台运行jar文件包程序:https://www.cnblogs.com/kedarui/p/6135895.html Linux 运行jar包命令如下:   方式一:   java -jar XXX.jar 特点:当前ssh窗口被锁定,可按CTRL + C打断程序...
  • linux执行java项目 main方法 打成的jar包,java -jar TestDemo.jar。具体过程请查看文档。
  • 因为springboot打包jar执行jsp和在linux永久执行java -jar以及springboot的多环境配置 都是springboot的 就放在一起说了 先说 打包jar 不能找到jsp问题: 打包成jar的时候会找不到jsp文件 只需要 在pom.xml文件...
  • Linux环境下如何执行jar

    千次阅读 2020-06-04 19:31:55
    如何在linux环境下如何执行jar包 刚进入测试行业的新手可能会遇到很多以前没有见过的问题,今天我们来分享一下如何在Linux环境下运行jar包 1,在指定的目录下上传jar包 2,在当前目录下执行java -jar xxx.jar 3,...
  • 通过 run.sh [ start | stop | restart | pid ] 脚本,执行启动 | 停止 | 重启 | 输出进程号。...2.替换文件第3行 app_name='xyz.jar' 中 'xyz.jar' 为运行jar包名。3.给该脚本执行权限:chmod +x run.sh 。
  • Linux一键启动多个jar

    2019-07-19 09:13:57
    这是Linux环境下一键启动/停止多个Java程序jar包的文件执行命令为./java.sh start
  • Linux执行引入了外部jar包的java程序
  • Linux下制作可执行JAR文件

    千次阅读 2012-02-27 10:28:35
    Linux下制作可执行JAR文件包 制作可执行JAR文件包及jar命令详解  常常在网上看到有人询问:如何把 java 程序编译成 .exe 文件。通常回答只有两种,一种是制作一个可执行的 JAR 文件包,然后就可以像....
  • Linux运行jar包命令

    千次阅读 2021-01-20 11:52:36
    linux下运行jar包的命令 1、java -jar xxxxx.jar // 当前xshell窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出 2、java -jar xxxxx.jar & //当前shell窗口不被锁定,但是当窗口关闭时,程序...
  • Linux替换jar或war中的文件

    千次阅读 2019-02-21 19:46:11
    有时候只是替换jar包中的某一个文件,但是如果去重新上传肯定是很傻的.所以精确替换就显得很重要了 1. 先用jar -tvf {war | jar} 看一下文件中 要替换文件的路径 2. 用jar -xvf {war | jar} {dest} 解压出要替换...
  • 转:http://codepub.cn/2016/05/11/The-correct-way-to-use-java-jar-run-an-executable-jar-package-under-Linux/ 问题来源 一般来说,一个大型的项目都会有一些依赖的JAR包(Java归档,英语:Java ARchive),而在...
  • Linux中替换jar包中的文件

    千次阅读 2019-05-20 15:04:51
    场景描述:metabase.jar 包中替换文件app-public.bundle.css的内容 一、查询需要替换的文件jar中的位置 > jar tvf *****.jar | grep {fileName} 二、将文件解压到当前目录(以及文件所在目录) > jar xvf...
  • 大致意思就是找不到main主程序, ...现在情况是 :maven项目使用maven打包后在linux执行提示no main manifest attribute; 同时的该项目是一个springboot项目 ,由于使用maven创建没有加入maven的打包插件 ...
  • linux下解压jar文件

    千次阅读 2017-10-18 14:59:00
    把当前目录下的所有文件打包成project.jarjar -cvfM0 project.jar ./ -c创建jar包-v显示过程信息-f-M-0这个是阿拉伯数字,只打包不压缩的意思解压project.jarjar -xvfproject.jar 解压到当前目录,注意,不会创建一...
  • Linux虚拟机系统执行jar包的过程中,经常会出现类似ClassNotFound等类似的错误,无法完成jar包的运行,根据经验,总结几点如下,便于自己记忆,后期查看,仅供参考。 1.主要原因:大多数是因为出现jar包冲突,...
  • Linux 后台运行 java -jar 执行jar

    千次阅读 2018-10-25 20:23:51
    1. 在Linux中运行jar包: 直接用java -jar xxx.jar,当退出或关闭shell时,程序就会停止掉。  以下方法可让jar运行后一直在后台运行:  java -jar XXX.jar &amp; 问题: 当前窗口不被锁定,输出的日志会...
  • linux指定JDK版本执行JAR包: //是在当前session中执行JAVA_HOME,不会影响别的项目,只对当前session启动的项目有影响 export JAVA_HOME=/kc/project/ecb/jdk1.8.0_201 export PATH=$JAVA_HOME/bin:$PATH export ...
  • Linux命令———zip和jar文件压缩解压

    千次阅读 2018-12-28 21:43:26
    Linux命令———zip和jar文件压缩解压 (1)ubuntu 使用unzip和zip压缩文件  1.功能作用:解压缩zip文件  2.位置:/usr/bin/unzip  3.格式用法:unzip [-Z] [-opts[modifiers]] file[.zip] [list] [-x xlist]...
  • linux中直接修改jar包内的文件

    千次阅读 2020-12-22 23:36:45
    eg:jar tvf springboot.jar(要修改的jar包) | grep 1.txt(要修改的文件) (2)解压jar中要修改的文件 eg:jar xvf springboot.jar(要修改的jar包) com/config/1.txt(步骤一种获取的完整路径名) (3)将修改好...
  • 更新服务器上运行包prs-0.0.1-SNAPSHOT.jar上的文件步骤: 1、进到prs-0.0.1-SNAPSHOT.jar所在目录: 2、先查询jar包中需要更新替换的文件的路径,即所在位置。命令如下: jar tvf prs-0.0.1-SNAPSHOT.jar | grep ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 194,741
精华内容 77,896
关键字:

linux如何执行jar文件

linux 订阅