linux怎么运行jar文件

在Linux上运行JAR文件时,首先应该检查Java是否安全。
如果已安装,请在设备上键入 java-version,如果能够看到版本号,那就太好了。
不安全吗?您应该使用系统自带的包管理器。

对于 Debian、Ubuntu 等系统,输入 sudo apt update && sudo apt install openjdk-1 7 -jre 安装 Java 运行环境。
对于 RHEL 和 CentOS 等系统,输入 sudo yum install java-1 7 -openjdk。
安装完成后,输入java-version查看是否已经安装。

安装后,运行 JAR 文件。
只需输入 java -jar 文件名.jar。
前提是JAR文件可以自己运行。
你怎么知道?检查文件中是否有META-INF/MANIFEST.MF文件。
它应该说明主要类别是什么。

如果系统中有多个Java版本,您必须选择要使用的版本。
例如,如果您输入 /usr/lib/jvm/java-1 7 -openjdk-amd6 4 /bin/java -jar 文件名.jar,则将使用版本 1 7
如果你想在后台运行并防止机器崩溃,请在命令末尾添加&。
例如nohup java -jar 文件名.jar > app.log 2 >&1 &,运行后会释放终端,并将程序日志写入到app.log文件中。

有时会报告错误,例如“找不到主类”。
发生这种情况通常是因为 JAR 文件无法直接播放。
您必须首先查看 MANIFEST.MF 文件以确定主类。
也可能是权限不足,启动时会提示您。
这时候就需要给该文件添加执行权限,输入chmod +x filename.jar,然后运行。

最烦人的是依赖问题。
如果JAR文件使用了其他库,则必须将这些库文件放在与JAR文件相同的目录下,或者使用-cp参数指定库文件的位置。
例如java -cp "lib/:.-jar 文件名.jar",输入这个就可以找到所有的库文件。

Linux下运行jar包的几种方式

Java 的运行方式确实是多种多样的。
我们不得不谈谈这个阻塞方法。
就像我第一次用Java编写程序一样,它一运行就全屏,我必须等待程序执行完毕才能做其他事情。
这个东西就是java-jarxxx.jar。
其特点是当前终端的会话窗口会被阻塞。
如果直接按CTRL+C中断或关闭窗口,程序将被终止。
当时我就很疑惑,为什么不能后台运行呢?
后来我发现了如何使用“&&”符号来运行后台。
记得2 01 5 年的一次技术交流会上,有朋友跟我说过这个,技巧就是java-jarxxx.jar&。
它的好处是它不会阻塞您的终端窗口。
你可以做任何事情,但是如果你关闭窗口,程序也会崩溃。

然后我学会了一种更高级的方法来让它保持在后台运行,那就是使用“nohup”命令。
这个工具太棒了。
我记得2 01 7 年在公司服务器上部署应用程序时学过nohupjava-jarxxx.jar&,这个命令的目的是让程序运行起来不崩溃。
它的特点是即使用户退出或者终端关闭,程序也能继续运行。
当时我就很惊讶,觉得这个很实用。

另一个细节是,当使用 nohup 命令运行任务时,输出将默认发送到 nohup.out 文件。
如果要指定输出文件,只需添加“>”符号即可,如nohupjava-jarxxx.jar>xxx.log。
该符号是重定向字符,这意味着上一个命令的所有输出将被重定向到下一个文件,而不是显示在屏幕上。
当时我第一次看到这个,心想,这太方便了。
以后写程序再也不用担心输出乱七八糟了。

Linux 中启动jar包命令

嘿哥们儿,我们来说说启动Java jar包吧。
几年前我第一次使用Linux。
那时我真的是一个初学者,遇到了很多陷阱。

我记得当时我尝试使用javajaryourapplication.jar来启动一个jar包,但是我发现如果我直接这样运行的话,一关闭终端就会崩溃。
需要在末尾添加一个&符号,比如javajaryourapplication.jar&,这样它就可以在后台运行,但是当你关闭终端时,程序也会停止。

后来我学到了一个很棒的技巧,使用 nohup 命令。
只需 nohup javajaryourapplication.jar& ,这样即使我退出终端,程序也能继续运行。
默认情况下,输出将转到 nohup.out 文件。
如果您想在其他地方拥有日志文件,请添加>&log.file。

所以我必须管理日志。
有时我看到终端输出太多,因此我使用 javajaryourapplication.jar>out.file 来重定向输出。
这样我可以保持终端干净并更容易检查日志。

有时后台运行的任务太多。
我需要使用 jobs 命令来查看正在运行的内容,并使用 fg+number 来恢复所需的接收。

嗯,主要还是看你的需求。
例如,在Jenkins或GitLabCI等集成工具中,您需要关注进程阻塞问题,并选择合适的方法来确保任务顺利完成。

嘿,我自己也经历过这些陷阱。
现在看来很简单,但当时确实很混乱。
希望这些可以帮助到你!如果你有什么不明白的地方,请回来找我。
😄

Jar包部署在Linux后台永久运行

nohupjava-jarxxx.jar& 或 java-jarxxx.jar>out.log& 后跟&在后台运行Jar包。
请记住以“退出”结束该过程,以避免中断该过程。