在 Linux 上,如何在执行 Java -jar 的时候全局添加一个参数

2022-12-07 14:49:12 +08:00
 twofox

在 linux 上如何实现 执行 java -jar xxx.jar

默认执行了 java -jar -Daaa=bbb xxx.jar

ps:为啥要这么做的呢,原因是安装 Oracle 的一个套件除了问题,默认校验了 SSL ,导致无法继续自动安装

2217 次点击
所在节点    Linux
12 条回复
liaojl
2022-12-07 14:53:55 +08:00
设置 alias 看看行不行, alias java='java -Daaa=bbb', 或者看看这个参数有没有对应的环境变量,export 一个
kokutou
2022-12-07 14:54:57 +08:00
java 的 bin 替换成 shell 脚本
yazinnnn
2022-12-07 14:55:53 +08:00
alias 不行吗
JimMoen
2022-12-07 14:56:12 +08:00
环境变量 `_JAVA_OPTIONS` 详情参见 Google
twofox
2022-12-07 14:57:14 +08:00
@liaojl 好像有戏,我试试,谢谢大佬!
twofox
2022-12-07 15:35:05 +08:00
@JimMoen
```export _JAVA_OPTIONS="-Dweblogic.nodemanager.sslHostNameVerificationEnabled=false -Dweblogic.security.SSL.ignoreHostnameVerification=true"```
会出错
twofox
2022-12-07 15:40:13 +08:00
@liaojl 似乎只能影响命令行的执行
我的程序是由 shell 启动的,shell 里面写了 java -jar xxxx
然后再由这个程序去执行其他程序,所以我也没办法通过这个 shell 去限制
twofox
2022-12-07 15:40:35 +08:00
@kokutou 咋替换呀大哥
leeyuzhe
2022-12-07 15:49:21 +08:00
@twofox 看看脚本里面是写的哪个路径下面的 java ,把它替换成你的 shell 文件
RobberPhex
2022-12-07 20:59:01 +08:00
我觉得还有有必要解释一下各个环境变量的差异。

首先从意图上来说:
1. 如果需要给**java 和 jps 等运维工具**设置参数,而且这些参数是**java 通用**的,那么应该设置给环境变量`JAVA_TOOL_OPTIONS`。
2. 如果需要给**javaj 和 jps 等运维工具**j 设置参数,而且这些参数是**jvm 厂商相关**j 的,比如是 dragonwell 特有的开关,那么应该设置`DRAGONWELL_JAVA_OPTIONS`。
3. 如果需要**给 java 设置参数**,但是**不给运维工具设置**,而且参数是**java 通用**的,那么应该设置环境变量`JAVA_TOOL_OPTIONS`,并设置`DRAGONWELL_JAVA_TOOL_OPTIONS_JDK_ONLY=true`。
3.1. 如果是 jdk9 及以上,则应该使用更加标准的`JDK_JAVA_OPTIONS`。
4. 如果需要**给 java 设置参数**,但是**不给运维工具设置**,而且参数是**jvm 厂商相关**的,那么应该设置环境变量`DRAGONWELL_JAVA_OPTIONS`,并设置`DRAGONWELL_JAVA_TOOL_OPTIONS_JDK_ONLY=true`。

一些技术细节可以参考: [dragonwell 让 java agent 更好用]( https://robberphex.com/java-agent-is-getting-better-at-dragonwell/)
RobberPhex
2022-12-07 20:59:33 +08:00
julyclyde
2022-12-08 08:39:11 +08:00
你需要理解:环境变量和 ulimit 类似,都是只对其所属进程和子进程有效
https://julyclyde.org/?p=578

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/900793

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX