https://www.jb51.net/article/271236.htm
 
这篇文章主要介绍了java -D参数设置系统属性无效问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

 

+

目录

java -D参数设置系统属性无效

我们都知道如何在Java中获取系统属性:

1
System.getProperty(ESClientConstance.HTTP_PROXY_HOST);

这样可以获取操作系统默认的一些属性值。

如果我们需要自定义一些系统属性,那么这样定义:

1
-Dhttp_proxy_host=192.19.19.19

但是要注意下面这种情况,会导致java -D失效,进而导致System.getProperty获取不到属性值。

比如我的这样一个以java -jar方式启动的脚本:

1
2
3
4
5
6
nohup java -agentlib:jdwp=transport=dt_socket,address=39502,server=y,suspend=n \
-jar /opt/spider-es-cli/es-client-1.0.0.jar \
-Dhttp_proxy_host=100.129.18.11 \
-Dhttp_proxy_port=3128 \
--spring.profiles.active=prod \
--server.port=9502 >/dev/null 2>&1 &

注意-D错误地配置在了-jar之后。

处理方式是将-D正确地配置在-jar之前即可。

同样地,对java 类名方式启动也一样,注意要将-D配置在类名之前。

java程序启动参数 -D详解

java程序启动参数 -D是用来做什么的呢?

去查询了一下官方解释:

Set a system property value. If value is a string that contains spaces, you must enclose the string in double quotes:

1
java -Dfoo="some string" SomeClass

也就是说-D是用来在启动一个java程序时设置系统属性值的。如果该值是一个字符串且包含空格,那么需要包在一对双引号中。

何为系统属性值呢?也就是在System类中通过getProperties()得到的一串系统属性。

下面我们来写个测试方法就知道了

1
2
3
4
5
6
7
8
9
10
/**
 * @author lmfeng
 * @date 2018/05/30
 */
public class SystemProperty {
  
    public static void main(String[] args){
        System.out.print(System.getProperty("dubbo.token"));
    }
}

在运行改程序时加上JVM参数-Ddubbo.token=“666” 或者 -Ddubbo.token=666,那么运行之后你可以看到控制台输出了666!

一点值得注意的是,需要设置的是JVM参数而不是program参数,注意看下图

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

[转帖]java -D参数设置系统属性无效问题及解决的更多相关文章

  1. Android : 反射机制获取或设置系统属性(SystemProperties)【转】

    本文转载自:https://blog.csdn.net/wei_lei/article/details/70312512 Android.os.SystemProperties 提供了获取和设置系统属 ...

  2. android TextView多行文本(超过3行)使用ellipsize属性无效问题的解决方法

    这篇文章介绍了android TextView多行文本(超过3行)使用ellipsize属性无效问题的解决方法,有需要的朋友可以参考一下 布局文件中的TextView属性 复制代码代码如下: < ...

  3. jboss:在standalone.xml中设置系统属性(system-properties)

    就象在.net的web应用中,可以在web.config中设置appSettings一样,jboss的standalone.xml中也可以由开发人员自行添加系统属性,用法如下: </extens ...

  4. Java虚拟机参数设置(转)

    今天在加载一幅图片时,eclipse报出如下错误: “Exception in thread "main" java.lang.OutOfMemoryError: Java hea ...

  5. hadoop java VM 参数设置 默认native栈大小设置

    问题总结: 程序栈太小,64位机器的栈大小默认比32位的大,将程序从64放到32中执行则报错,需要修改初始堆栈大小 (.so库中提供两个函数接口,一个里面使用的是尺寸较大的图像,另一个处理的图像很小, ...

  6. JAVA——JVM参数设置规则以及参数含义

    JVM参数设置规则: -XX:+<option> 启用option,例如:-XX:+PrintGCDetails启动打印GC信息的选项,其中+号表示true,开启的意思-XX:-<o ...

  7. java虚拟机参数设置 jvm参数设置

    java进程命令行使用方式如下: java [-options] class [args...] -options 表示虚拟机的启动参数, class为带有main()函数的java类的全名称 arg ...

  8. jboss启动时java VM参数设置

    jboss服务器中jvm参数的设置: 在$JBOSS_HOME/bin下的run.sh里面存在这么一个设置: # Force IPv4 on Linux systems since IPv6 does ...

  9. [PHP学习教程 - 系统]004.通过ini_set()来设置系统属性(ini_set Method)

    PHP原意:ini_set — 为一个系统配置项设置值 基本信息: string ini_set ( string $varname , string $newvalue). (说明:设置指定配置选项 ...

  10. java启动参数 设置

    JAVA_MEM_OPTS="" BITS=`java -version 2>&1 | grep -i 64-bit` if [ -n "$BITS&quo ...

随机推荐

  1. 2020-12-17:java和go,如何高效的拼接字符串?

    福哥答案2020-12-17: java: stringbuilder 线程不安全. stringbuffer 线程安全. go:答案来自此链接: 1.在已有字符串数组的场合,使用 strings.J ...

  2. php +libcurl+nghttp2 实现高性能微服务架构

    1.server端nginx编译时增加参数configure --with-http_v2_module     server {        listen       80 http2;      ...

  3. 拖拽功能实现vue

    1.按钮 <el-button @mousedown="down" @touchstart="down" @mousemove="move&qu ...

  4. 论文分享丨Holistic Evaluation of Language Models

    摘要:该文为大模型评估方向的综述论文. 本文分享自华为云社区<[论文分享]<Holistic Evaluation of Language Models>>,作者:DevAI. ...

  5. 快来一起玩转LiteOS组件:Curl

    摘要:Curl是一个文件传输工具,常用于数据上传和下载,本demo基于Cloud_STM32F429IGTx_FIRE开发板演示了在curl demo中调用curl提供的API来下载一个文件,并将其保 ...

  6. 火山引擎 DataTester :让字节“跳动”起来的 A/B 实验平台

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流 火山引擎 DataTester 不仅对外提供服务,同时也是当前字节跳动内部所应用的 AB 实验平台. DataTes ...

  7. Asp.Net Core 使用X.PagedList.Mvc.Core分页 & 搜索

    1.Nuget包添加引用: X.PagedList.Mvc.Core 2.View: @using VipSoft.Web.Model @model X.PagedList.IPagedList< ...

  8. Intellij IDEA 开启 RunDashboard

    1. 关闭 Intellij IDEA (2018以下的版本无效),打开 workspace.xml 找到  RunDashboard 节点.添加如果配置 <option name=" ...

  9. 微软商店上架Windows&Office破解工具,并获5星好评?

    大家好,我是DD! 最近真的除了俄乌冲突之外,其他消息似乎都被淹没了,连狗血的娱乐圈都哑火了. 但昨天在微信群(点击加入)里的这张图引起了我的注意... 据群友称Windows应用商店上架了一个破解W ...

  10. SpringBoot 项目实战 | 瑞吉外卖 优化篇 Day01

    该系列将记录一份完整的实战项目的完成过程,该篇属于优化篇第一天,主要负责完成缓存优化问题 案例来自B站黑马程序员Java项目实战<瑞吉外卖>,请结合课程资料阅读以下内容 该篇我们将完成以下 ...