Java 启动参数 -- 和 -D写法的区别

news2024/10/7 12:18:54

当我们配置启动1个java 项目通常需要带一些参数

例如 -Denv = uat , --spring.profiles.active=dev 这些

那么用-D 和 – 的写法区别是什么?



双横线写法

其中这种写法基本上是spring 和 spring 框架独有

最常用的无非是就是上面提到的 --spring.profiles.active=dev 啦
这种写法必须写在 java xxx.jar 的后面

例如:

java xxx.jar --spring.profiles.active=dev

如果我们想自己在java 程序里自定义1个custom的 用-- 指定的参数
可以参考下面代码

@SpringBootApplication
@PropertySource("classpath:query.properties")
@Slf4j
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

    @Bean
    public ApplicationRunner applicationRunner() {
        return new ApplicationRunner() {
            @Override
            public void run(ApplicationArguments args) throws Exception {
                log.info("customParam: " + args.getOptionValues("customParam"));
            }
        };
    }

如果需要在IDEA的run configuration 配置, 则需要加在 CLI Arguments 那个field里
如下:
在这里插入图片描述

横线D写法 -D

这种写法通常是配置系统和VM的参数
最常用的无非是 配置代理
-D参数 必须写在java 和 xxx.jar 的中间
例如:

java -Dhttp.proxyHost=xxxx -Dhttp.proxyPort=7890 xxx.jar --spring.profiles.active=dev

这种方法配置的参数可以在代码中用System.getProperty()获取
当然在代码里用System.setProperty() 设置也一样的
例如:

@Component
@Slf4j
@EnableAsync
public class MyInitializer {

    @PostConstruct
    public void init() {
        log.info("Application started...");
        //setProxy();
        printProxy();
    }

    private void setProxy() {
        System.setProperty("https.proxyHost", "10.0.1.223");
        System.setProperty("https.proxyPort", "7890");
    }

    private void printProxy(){
       log.info("https.proxyHost: " + System.getProperty("https.proxyHost"));
       log.info("https.proxyPort: " + System.getProperty("https.proxyPort"));
    }

在IDEA里, 则需要把这种参数写在 VM参数的field里
如下:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1509374.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【golang】28、用 httptest 做 web server 的 controller 的单测

文章目录 一、构建 HTTP server1.1 model.go1.2 server.go1.3 curl 验证 server 功能1.3.1 新建1.3.2 查询1.3.3 更新1.3.4 删除 二、httptest 测试2.1 完整示例2.2 实现逻辑2.3 其他示例2.4 用 TestMain 避免重复的测试代码2.5 gin 框架的 httptest 一、构建 HTTP server 1.1…

如何配置固定TCP公网地址实现远程访问内网MongoDB数据库

文章目录 前言1. 安装数据库2. 内网穿透2.1 安装cpolar内网穿透2.2 创建隧道映射2.3 测试随机公网地址远程连接 3. 配置固定TCP端口地址3.1 保留一个固定的公网TCP端口地址3.2 配置固定公网TCP端口地址3.3 测试固定地址公网远程访问 前言 MongoDB是一个基于分布式文件存储的数…

JDK环境变量配置-jre\bin、rt.jar、dt.jar、tools.jar

我们主要看下rt.jar、dt.jar、tools.jar的作用,rt.jar在​%JAVA_HOME%\jre\lib,dt.jar和tools.jar在%JAVA_HOME%\lib下。 rt.jar:Java基础类库,也就是Java doc里面看到的所有的类的class文件。 tools.jar:是系统用来编…

星星魔方

星星魔方 1,魔方三要素 (1)组成部件 6个中心块和8个角块和三阶魔方同构,另外每个面还有构成五角星的十个块。 (2)可执行操作 一共12种操作,其中6种是每个层顺时针旋转90度,另外6…

Gateway(路由映射)

1.SpringCloud Gateway Spring Cloud Gateway组件的核心是一系列的过滤器,通过这些过滤器可以将客户端发送的请求转发(路由)到对应的微服务。 Spring Cloud Gateway是加在整个微服务最前沿的防火墙和代理器,隐藏微服务结点IP端口信息,从而加…

用Vision Pro来控制机器人

【技术框架概述】 - visionOS App + Python Library用于从Vision Pro将头部/手腕/手指跟踪数据流式传输到任何机器人。 【定位】 - 该框架旨在利用Vision Pro控制机器人,并记录用户在环境中导航和操作的方式,以训练机器人。 【核心功能】 1. 提供visionOS应用程序和Py…

TEASEL: A transformer-based speech-prefixed language model

文章目录 TEASEL:一种基于Transformer的语音前缀语言模型文章信息研究目的研究内容研究方法1.总体框图2.BERT-style Language Models(基准模型)3.Speech Module3.1Speech Temporal Encoder3.2Lightweight Attentive Aggregation (LAA) 4.训练…

大语言模型系列-中文开源大模型

文章目录 前言一、主流开源大模型二、中文开源大模型排行榜 前言 近期,OpenAI 的主要竞争者 Anthropic 推出了他们的新一代大型语言模型 Claude 3,该系列涵盖了三个不同规模的模型:Opus、Sonnet 和 Haiku。 Claude 3声称已经全面超越GPT-4。…

软考71-上午题-【面向对象技术2-UML】-UML中的图2

一、用例图 上午题,考的少;下午题,考的多。 1-1、用例图的定义 用例图展现了一组用例、参与者以及它们之间的关系。 用例图用于对系统的静态用例图进行建模。 可以用下列两种方式来使用用例图: 1、对系统的语境建模&#xff1b…

人口性别年龄分布数据、不同年龄结构、性别结构人口分布数据、乡镇街道人口分布数据

人口分布是指人口在一定时间内的空间存在形式、分布状况,包括各类地区总人口的分布,以及某些特定人口(如城市人口、、特定的人口过程和构成(如迁移、性别等)的分布等。 人口分布的最大特征是不平衡性。就全世界而言&am…

【工具】软件工具分享哪家强?安卓apk安装软件分享新方法,弃用QQ启用企业微信使用方法...

微信关注公众号 “DLGG创客DIY” 设为“星标”,重磅干货,第一时间送达。 前言 又又来聊软件工具分享 先简单回顾一下之前的内容: 按时间先后顺序: 1.从网盘到QQ群文件及群文件分类 【工具】软件工具分享哪家强?群文件使…

Mac电脑搭建前端项目环境,并适配老项目

1.上一篇文章中,我说到了,node.js中文网下载node 包,根据系统进行选择,然后安装包node即可,对于比较新的项目确实也是适用的,但是老项目就不行了会报错,node版本过高,导致环境不匹配…

Java线程的基本操作

线程的基本操作 Java线程的常用操作都定义在Thread类中,包括一些重要的静态方法 和线程的实例方法 。下面我们来学习一下,线程的常用基本操作 1.线程名称的设置和获取 线程名称可以通过构造Thread的时候进行设置,也可以通过实例的方法setName…

科技云报道:两会热议的数据要素,如何拥抱新技术?

科技云报道原创。 今年全国两会上,“数字经济”再次成为的热点话题。 2024年政府工作报告提到:要健全数据基础制度,大力推动数据开发开放和流通使用;适度超前建设数字基础设施,加快形成全国一体化算力体系&#xff1…

【Flutter】报错Target of URI doesn‘t exist ‘package:flutter/material.dart‘

运行别人项目 包无法导入报错:Target of URI doesn’t exist ‘package:flutter/material.dart’ 解决方法 flutter packages get成功 不会报错

Centos本地、公网邮件发送配置

目录 本地邮件发送 发送邮件的三种方式 接受邮件 配置公网发送邮件 发送文件 本地邮件发送 安装服务 # yum -y install postfix # yum -y install mailx 启动服务 # systemctl start postfix 发送邮件的三种方式 一. # mail-s“邮件主题” 收件人 ​ 邮件内容…

Linux - 安装 Jenkins(详细教程)

目录 前言一、简介二、安装前准备三、下载与安装四、配置镜像地址五、启动与关闭六、常用插件的安装 前言 虽然说网上有很多关于 Jenkins 安装的教程,但是大部分都不够详细,或者是需要搭配 docker 或者 k8s 等进行安装,对于新手小白而已&…

智谱清华LongAlign发布:重塑NLP长文本处理

引言 随着大型语言模型(LLMs)的不断进化,我们现在能够处理的文本长度已经达到了前所未有的规模——从最初的几百个tokens到现在的128k tokens,相当于一本300页的书。这一进步为语义信息的提供、错误率的减少以及用户体验的提升打…

解决方案RuntimeError: CUDA out of memory

文章目录 一、现象:二、解决方案 一、现象: PyTorch深度学习框架,运行bert-mini,本地环境是torch1.4-gpu,发现报错显示:RuntimeError: CUDA out of memory. Tried to allocate 224.00 MiB (GPU 0; 15.89 G…

保护物联网设备免受网络攻击的方法

可以肯定地说,物联网设备让我们的生活变得更加轻松和方便。这项新技术改变了人们在办公室工作的方式,也改变了他们在家里使用小工具的方式。办公室或家里的所有智能设备都可以连接,这让生活变得更加轻松。然而,这也使这些设备面临…