在 Linux 上,如何在执行 Java -jar 的时候全局添加一个参数 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
twofox
V2EX    Linux

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

  •  
  •   twofox Dec 7, 2022 2856 views
    This topic created in 1236 days ago, the information mentioned may be changed or developed.

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

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

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

    Supplement 1    Dec 7, 2022
    感谢各位的回帖
    最终的做法是修改 _JAVA_OPTIONS

    加了之后会导致脚本里的校验 JDK 版本判断失效,所以又改了一下脚本
    12 replies    2022-12-08 08:39:11 +08:00
    liaojl
        1
    liaojl  
       Dec 7, 2022 via iPhone   1
    设置 alias 看看行不行, alias java='java -Daaa=bbb', 或者看看这个参数有没有对应的环境变量,export 一个
    kokutou
        2
    kokutou  
       Dec 7, 2022 via Android   1
    java 的 bin 替换成 shell 脚本
    yazinnnn
        3
    yazinnnn  
       Dec 7, 2022   1
    alias 不行吗
    JimMoen
        4
    JimMoen  
       Dec 7, 2022   1
    环境变量 `_JAVA_OPTIONS` 详情参见 Google
    twofox
        5
    twofox  
    OP
       Dec 7, 2022
    @liaojl 好像有戏,我试试,谢谢大佬!
    twofox
        6
    twofox  
    OP
       Dec 7, 2022
    @JimMoen
    ```export _JAVA_OPTIOnS="-Dweblogic.nodemanager.sslHostNameVerificatiOnEnabled=false -Dweblogic.security.SSL.ignoreHostnameVerification=true"```
    会出错
    twofox
        7
    twofox  
    OP
       Dec 7, 2022
    @liaojl 似乎只能影响命令行的执行
    我的程序是由 shell 启动的,shell 里面写了 java -jar xxxx
    然后再由这个程序去执行其他程序,所以我也没办法通过这个 shell 去限制
    twofox
        8
    twofox  
    OP
      &nsp;Dec 7, 2022
    @kokutou 咋替换呀大哥
    ThisDay
        9
    ThisDay  
       Dec 7, 2022
    @twofox 看看脚本里面是写的哪个路径下面的 java ,把它替换成你的 shell 文件
    RobberPhex
        10
    RobberPhex  
       Dec 7, 2022   1
    我觉得还有有必要解释一下各个环境变量的差异。

    首先从意图上来说:
    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/)
    julyclyde
        12
    julyclyde  
       Dec 8, 2022   1
    你需要理解:环境变量和 ulimit 类似,都是只对其所属进程和子进程有效
    https://julyclyde.org/?p=578
    About     Help     Advertise     Blog     API     FAQ     Solana     978 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VESION: 3.9.8.5 41ms UTC 22:49 PVG 06:49 LAX 15:49 JFK 18:49
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86