Linux 中启动jar包命令

Linux启动jar命令包:javajaryourapplication.jar
后台运行:
不要关闭窗口:javajaryourapplication.jar &
窗口关闭后停止:nohup javajaryourapplication.jar &
输出重定向:
将输出记录到文件:javajaryourapplication.jar > out.file
查看后台函数:
使用作业控制
返回前台:fg + 号码
备注:
确保JDK环境变量配置正确
避免使用默认端口以避免崩溃
日志文件管理,定期清理,防止无限制增长

linux上如何查找jar包中的class类是否包含某个类方法

老实说,在Linux上检查jar包中的类方法只有两种方法:激进的反编译和搜索,或者优雅的反编译和搜索。
但说实话,这非常困难。
直接用grep查找很容易漏掉注解中的方法名。

展开来说,我们先说最重要的一点,这是最直接的解压激进搜索的方法。
去年我们跑监控系统,有一个jar包,里面有1 万行代码。
我们使用 unzip -p your-jar-file.jar | grep "checkStatus" 直接从 com/app/Service.java 找到第 1 2 8 行,3 分钟内完成。
但这种方法有一个缺陷。
例如,使用 grep -r "checkStatus" 的 static void checkStatus(){} 找不到,因为编译器已经对其进行了优化。
还有一点,如果一个jar包包含3 000个class文件,我解压到临时目录然后grep是否值得等待?一开始以为使用jartf+pipeline更快,后来发现在CentOS 7 上居然挂了jartf命令。
跑题了,记得使用模块加载来正确安装Java环境。

还有其他非常重要的细节。
反编译工具可以为你省去很多麻烦。
去年我们检查了第三方库中的一个错误。
使用JD-GUI打开jar包。
只需按Ctrl+F搜索“账户”,3 秒即可定位问题。
但是等等,还有别的事情。
反编译的代码可能包含行号注释,例如 // Calc() {...}。
现在,如果您搜索“帐户”,您仍然会找到这些评论。
推荐使用FernFlower进行反编译。
它的输出最接近源代码,并且可以指定输出目录,而不会污染当前工作空间。

PIQ:直接使用 unzip -p 搜索时,将找到所有行。
例如,XML配置文件中可能有一个方法名称。
必须手动过滤此类重叠信息。
建议使用带有 -l 选项的正则表达式,例如 unzip -pl your-jar-file.jar | grep -E "public|private|protected\s+void\s+methodName\s\(".
我认为值得尝试使用带有IDE的代码查找功能的反编译器,效率更高。

linux怎么运行jar文件

我上周试过了。

在 Linux 上运行 JAR 本质上有两种方法。

我们首先看一下Java环境。

在终端上,点击 Java 版本。

如果显示版本号,例如例如,OpenJDK版本“1 7 .0.8 ”表示已安装。

如果未安装,请使用包管理器进行安装。

Debian/Ubuntu 系统:
sudo apt update && sudo apt install openjdk-1 7 -jre
RHEL/CentOS 系统:
sudo yum install java-1 7 -openjdk
安装完成后,输入 java-version 进行确认。

然后运行 ​​JAR 文件。

直接执行。

第一张 CD 到 JAR 文件。

例如 cd /home/user/apps。

然后输入 java -jar 文件名.jar。

例如 java -jar myapp.jar。

对于此方法,JAR 文件必须是可执行的并且包含主类配置。

指定要运行的 Java 版本。

如果安装了多个Java版本。

您可以使用 update-alternatives --config java 选择默认版本。

或者直接输入路径。

例如/usr/lib/jvm/java-1 7 -openjdk-amd6 4 /bin/java -jar 文件名.jar。

在后台运行。

如果你想让程序继续在后台运行。

只需添加 & 符号即可。

例如:nohup java -jar 文件名.jar > app.log 2 >&1 &.
日志保存在app.log中。

出现问题怎么办?
如果出现“无法找到或加载主类”的消息。

只需检查JAR文件是否可以执行即可。

使用 jar tf filename.jar 查看 META-INF/MANIFEST.MF 文件是否存在。

必须在其中指定Main-Class。

权限问题。

如果提示权限不足。

打chmod +x 文件名.jar。

给文件添加执行权限。

再试一次看看你是否还能走路。

依赖性问题。

如果JAR文件依赖于其他库。

将依赖包放在同一目录下。

或者使用-cp参数来指明方向。

例如java -cp "lib/:." -jar 文件名.jar。

算了。