精华内容
下载资源
问答
  • 场景工程中有一个xxx.properties的配置文件,里面有些环境变量,如数据库连接,文件目录等...dev、test、release 等不能针对每一个环境都去修改 Dockerfile 文件于是乎就尝试使用 shell 脚本读取配置文件,将结果...

    1117dce28d0f7cc0eafb3390b7cc0f01.png

    场景

    工程中有一个xxx.properties的配置文件,里面有些环境变量,如数据库连接,文件目录等

    同时有一个处理数据的shell脚本,里面也需要这部分环境变量

    通常的做法是在写 Dockerfile 时,使用ENV xx xx的方式制定

    但是,系统环境有多个,dev、test、release 等

    不能针对每一个环境都去修改 Dockerfile 文件

    于是乎就尝试使用 shell 脚本读取配置文件,将结果设置到环境变量中

    步骤

    1.按行读取配置文件

    Linux 有多中按行读取文件的方式:awk,cat 等,我这里采用了 cat 的方式

    cat /data/luelue.properties | while read line; do
        echo $line
    done

    这样就可以将数据读取出来

    2.修改数据格式

    luelue.properties 中的数据格式是

    auther:shuai
    url:jdbc:mysql://localhost:3306/liquibase?useSSL=false

    但是 Linux 环境变量中的数据格式是

    export auther=shuai
    export url=jdbc:mysql://localhost:3306/liquibase?useSSL=false

    因此我们要做的是:

    • 切分 luelue.properties 中的数据
    • 组装成 export xx=xx 的格式

    2.1切分数据

    Linux 有多种切分字符串的方式,这里我采用了 ${string#*chars}${string%chars*}的方式

    string 是要截取的字符串 *是通配符的一种,表示任意长度的字符串
    chars 是指定的字符(或者子字符串)
    %、# 意思是从右向左、从左向右

    针对auther:shuai 使用${line%:*} ${line#*:} 就可以截出auther shuai

    但是url:jdbc:mysql://localhost:3306/liquibase?useSSL=false 截出的就是`url:jdbc:mysql://localhost: url

    为什么呢?

    因为单个#、%意思是:遇到第一个匹配的就停止

    那么很显然,截取Key的时候,要使用${line%%:*}

    2.2 拼装数据

    使用:echo export ${line%%:*}"="${line#*:} 生成需要的 Linux 环境变量的格式

    2.3 追加到配置文件中

    使用:echo xxx >> file

    echo export ${line%%:*}"="${line#*:} >> /etc/profile

    2.4 健壮性处理

    luelue.properties 配置文件中通常有 # 标识的注释,这些注释文字很明显不是我们所需要的

    通过:$line != #*判断是否是 # 开头

    2.5 加载配置文件

    最后别忘记 source /etc/profile 是配置文件剩下

    字符串判空

    Linux 字符串判空操作奇奇怪怪,多种多样,做这个功能的时候看花了眼

    通常是使用,但是这种情况判断好使,!= 我测试是无效的。

    if [ x"$prv" = x ]; then
        xxx
    else
        xxx
    fi

    这里整理出一个简单好用的判断非空的方式

    if [ -z $prv ]; then
        xxx
    else
        xxx
    fi
    展开全文
  • Linux系统下Java程序读取配置文件

    千次阅读 2020-10-28 16:46:45
    我们知道的ClassLoader 方式只能读取类路径下的配置文件,当项目打成 jar 包放到服务器后就找不到文件了,打成jar包后必须以流的方式读取文件。 // 使用InPutStream流读取properties文 BufferedReader ...

    最近在对一个开源项目进行二次的开发,项目目录:
    在这里插入图片描述
    自己开发的jar包放到目录jars中,配置文件需要放到etc目录下,方便修改。


    我们知道的ClassLoader 方式只能读取类路径下的配置文件,当项目打成 jar 包放到服务器后就找不到文件了,打成jar包后必须以流的方式读取文件。

    // 读取properties文
    BufferedReader bufferedReader = new BufferedReader(new FileReader("/etc/emqx_to_kafka.properties"));
    // 使用 properties 对象加载输入流
    properties.load(bufferedReader);
    
    String subTopic = properties.getProperty("emqx.topic");
    String broker = properties.getProperty("emqx.broker");
    

    这种方式的优点在于可以读取任意路径下的配置文件。

    展开全文
  • 在现实工作中,我们常常需要保存一些系统配置信息,大家一般都会选择配置文件来完成,本文根据笔者工作中用到的读取配置文件的方法小小总结一下,主要叙述的是spring读取配置文件的方法。  一、读取xml配置文件 ...

    在现实工作中,我们常常需要保存一些系统配置信息,大家一般都会选择配置文件来完成,本文根据笔者工作中用到的读取配置文件的方法小小总结一下,主要叙述的是spring读取配置文件的方法。

      一、读取xml配置文件

      (一)新建一个java bean
    package chb.demo.vo;
    public class HelloBean {
    private String helloWorld;
    public String getHelloWorld() {
    return helloWorld;
    }
    public void setHelloWorld(String helloWorld) {
    this.helloWorld = helloWorld;
    }
    }

      (二)构造一个配置文件





    Hello!chb!


      (三)读取xml文件
    1.利用ClassPathXmlApplicationContext
    ApplicationContext context = new ClassPathXmlApplicationContext("beanConfig.xml");
    HelloBean helloBean = (HelloBean)context.getBean("helloBean");
    System.out.println(helloBean.getHelloWorld());
    2.利用FileSystemResource读取
    Resource rs = new FileSystemResource("D:/software/tomcat/webapps/springWebDemo/WEB-INF/classes/beanConfig.xml");
    BeanFactory factory = new XmlBeanFactory(rs);
    HelloBean helloBean = (HelloBean)factory.getBean("helloBean");
    System.out.println(helloBean.getHelloWorld());
    值得注意的是:利用FileSystemResource,则配置文件必须放在project直接目录下,或者写明绝对路径,否则就会抛出找不到文件的异常

      二、读取properties配置文件
    这里介绍两种技术:利用spring读取properties 文件和利用java.util.Properties读取

      (一)利用spring读取properties 文件

      我们还利用上面的HelloBean.java文件,构造如下beanConfig.properties文件:
    helloBean.class=chb.demo.vo.HelloBean
    helloBean.helloWorld=Hello!chb!
    属性文件中的"helloBean"名称即是Bean的别名设定,.class用于指定类来源。
    然后利用org.springframework.beans.factory.support.PropertiesBeanDefinitionReader来读取属性文件
    BeanDefinitionRegistry reg = new DefaultListableBeanFactory();
    PropertiesBeanDefinitionReader reader = new PropertiesBeanDefinitionReader(reg);
    reader.loadBeanDefinitions(new ClassPathResource("beanConfig.properties"));
    BeanFactory factory = (BeanFactory)reg;
    HelloBean helloBean = (HelloBean)factory.getBean("helloBean");
    System.out.println(helloBean.getHelloWorld());

      (二)利用java.util.Properties读取属性文件

      比如,我们构造一个ipConfig.properties来保存服务器ip地址和端口,如:
    ip=192.168.0.1
    port=8080
    则,我们可以用如下程序来获得服务器配置信息:
    InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("ipConfig.properties");
    Properties p = new Properties();
    try {
    p.load(inputStream);
    } catch (IOException e1) {
    e1.printStackTrace();
    }
    System.out.println("ip:"+p.getProperty("ip")+",port:"+p.getProperty("port"));

    原文链接:http://www.linuxeden.com/html/develop/20111217/118064.html


    展开全文
  • java 读取linux服务器上文件 内容精选换一换本章节介绍如何将NFS文件系统的子目录挂载至Linux云服务器上。已参考挂载NFS文件系统到云服务器(Linux)成功将文件系统挂载至Linux云服务器上。mkdir 本地路径/子目录本地...

    java 读取linux服务器上文件 内容精选

    换一换

    c8a5a5028d2cabfeeee0907ef5119e7e.png

    本章节介绍如何将NFS文件系统的子目录挂载至Linux云服务器上。已参考挂载NFS文件系统到云服务器(Linux)成功将文件系统挂载至Linux云服务器上。mkdir 本地路径/子目录本地路径:云服务器上用于挂载文件系统的本地路径,例如/local_path。与挂载根目录时的本地路径保持一致。mount -t nfs -o vers=3,

    当创建文件系统后,您需要使用云服务器来挂载该文件系统,以实现多个云服务器共享使用文件系统的目的。CIFS类型的文件系统不支持使用Linux操作系统的云服务器进行挂载。同一SFS容量型文件系统不能同时支持NFS协议和CIFS协议。裸金属服务器、容器(CCE&CCI)操作与云服务器一致。确定云服务器操作系统类型,不同操作系统安装NFS客户端的

    java 读取linux服务器上文件 相关内容

    并行文件系统(Parallel File System)是对象存储服务(Object Storage Service,OBS)提供的一种经过优化的高性能文件系统,提供毫秒级别访问时延,TB/s级别带宽和百万级别的IOPS,能够快速处理高性能计算(HPC)工作负载。作为对象存储服务的子产品,并行文件系统支持用户按照标准的OBS接口读取数据。

    并行文件系统(Parallel File System)是OBS提供的一种经过优化的高性能文件系统,提供毫秒级别访问时延,以及TB/s级别带宽和百万级别的IOPS,能够快速处理高性能计算(HPC)工作负载。作为对象存储服务的子产品,并行文件系统支持用户按照标准的OBS接口读取数据。也支持通过部署在弹性云服务器中的PFS客户端(obsfs工

    java 读取linux服务器上文件 更多内容

    b139ef593fb8558052cf7d856d8ac3a5.png

    Tomcat是一个被广泛使用的Java Web应用服务器。本文介绍了在华为云弹性云服务器上部署Java Web环境的操作步骤。首先需要下载部署Java Web环境所需的安装包,并将安装包上传至云服务器,然后设置弹性云服务器安全组规则,再安装并配置相关软件,完成开发环境的配置。本文档适用于使用华为云弹性云服务器部署Java Web环境的用户

    f3b8b8d84706868f201fb0c4780edbab.png

    为避免已挂载文件系统的云服务器重启后,挂载信息丢失,您可以在云服务器设置重启时进行自动挂载。部分CentOS系统的云服务器由于管理启动项的机制(服务启动顺序)不同,可能不支持以下自动挂载方案。此时,请手动挂载。在文件的最后新增要挂载的文件系统信息,配置样例如下:挂载地址 /local_path nfs vers=3,timeo=600,n

    8c18d15b4c8a3bef37b3cc91cd8c38da.png

    已安装PuTTY工具。unzip dis-agent-X.X.X.zipcd dis-agent-X.X.X

    118fcc6f8f8a59b8317188ff10d93c94.png

    已安装PuTTY工具。unzip dis-agent-X.X.X.zipcd dis-agent-X.X.X

    e8856eb4a33744e9e363326f14bf7b97.png

    已成功登录Java性能分析。待安装Guardian的服务器已开启sshd。待安装Guardian的服务器已安装JRE,JRE版本要求为Huawei JDK 8或者Open JDK 8/11。Java性能分析优先选用非交互shell(non-interactive shell)中的JAVA_HOME环境变量所指定的JRE版本运行Guardi

    784dc64e49dbbf1bc7916486d97eab2c.png

    假定用户有某个周末网民网购停留时间的日志文本,基于某些业务要求,要求开发Spark应用程序实现如下功能:统计日志文件中本周末网购停留总时间超过2个小时的女性网民信息。周末两天的日志文件第一列为姓名,第二列为性别,第三列为本次停留时间,单位为分钟,分隔符为,。log1.txt:周六网民停留日志LiuYang,female,20

    YuanJi

    f37b9b09b23d9b59f1b2d6c6affcfacc.png

    执行chmod -R 777 / 导致CentOS云服务器根目录权限设置成777,系统中的大部分服务以及命令无法使用。此时可通过系统自带的getfacl命令来拷贝和还原系统权限,本节操作介绍误操作导致根目录设置成777权限的补救措施。对文件或目录设置777权限代表它将对所有用户都是可读、可写和可执行的,根目录设置777权限后存在安全风险。

    ea3d514774dda107c847f333927c833f.png

    Linux操作系统的弹性云服务器默认只能通过root帐号使用mount命令进行挂载文件系统,但可通过赋予其他普通用户root权限,达到使非root的普通用户能够在弹性云服务器上使用mount命令挂载文件系统。以下操作以Euler OS系统的弹性云服务器为例介绍如何通过普通用户帐号将文件系统挂载到Linux云服务器。云服务器中已创建非roo

    3534dd170a545b94273de228dc486b40.png

    已成功登录Java性能分析。待安装分析辅助软件的服务器已开启sshd。待安装分析辅助软件的服务器已安装JRE,JRE版本要求为Open JDK 11。Java性能分析优先选用非交互shell(non-interactive shell)中的JAVA_HOME环境变量所指定的JRE版本运行分析辅助软件,其次选用非交互shell(non-in

    293f5c3a9815ee95e4ed79a7f04b8f18.png

    GaussDB(DWS)提供了数据服务工具GDS来帮助分发待导入的用户数据及实现数据的高速导入。GDS需部署到数据服务器上。数据量大,数据存储在多个服务器上时,在每个数据服务器上安装配置、启动GDS后,各服务器上的数据可以并行入库。GDS在各台数据服务器上的安装配置和启动方法相同,本节以一台服务器为例进行说明。GDS支持在如下的操作系统中

    5eb5094525ac38c82d2a8e7d84950748.png

    已成功登录Java性能分析。待安装分析辅助软件的服务器已开启sshd。Java性能分析优先选用非交互shell(non-interactive shell)中的JAVA_HOME环境变量所指定的JRE版本运行分析辅助软件,其次选用非交互shell(non-interactive shell)中的PATH环境变量能发现的java命令运行分析

    展开全文
  • java读取配置文件properties乱码问题

    千次阅读 2018-08-06 10:31:10
    熟悉vi的就不多说了,设定文件编码,统一一下就好了,文件编码就是读取文件时指定的编码。 iconv 这个嘛,主要协助工作,也可以换换口味。 iconv -l 查看linux支持的字符集 iconv -f from_encoding -...
  • java 读取linux服务器上文件 内容精选换一换已成功登录Java性能分析。待安装分析辅助软件的服务器已开启sshd。Java性能分析优先选用非交互shell(non-interactive shell)中的JAVA_HOME环境变量所指定的JRE版本运行...
  • 一.Java获取linux或windows系统信息(用户目录,临时目录等) //当前用户主目录 String userPath = System.getProperty("user.home"); java.version Java运行时环境版本 java.vendor ...
  • 其实他们与java的HashMap结构是一样的,都是一个存放key-value对的容器,只是配置文件那些是属性与属性值的key-value对罢了,HashMap不懂是啥的同志可以参考我之前写的《【JavaJava中的Collections类——Java
  • Java读取Excel文件并写入Oracle数据库对应的代码及配置文件和创建数据库表的sql语句
  • linux shell 读取配置文件

    千次阅读 2018-11-13 13:30:21
    随着linux接触的越来越多,我们难免需要从一些配置文件中进行读取配置参数,linux中shell属于脚本型语言,读取时没有其它语言方便,特将用过的一种方式分享给大家 实战代码: $ more a.txt name=hello world age=22 ...
  • java 读取linux服务器上文件 内容精选换一换目的调整系统配置选项,充分发挥系统硬件性能。调整系统配置选项,充分发挥系统硬件性能。方法具体优化项详见表1。OS配置参数参数名称参数含义优化建议配置方法vm....
  • NULL 博文链接:https://liuzidong.iteye.com/blog/776637
  • 1.简单的jar包在linux上跑使用java -jar 命令执行。但通常这不满足项目需要。尤其是配置文件修改。 2.项目结构。一般是lib文件夹,config文件夹,logs文件夹。将config中的配置文件需要加载到项目的classpath中。...
  • java访问linux服务器读取文件路径 内容精选换一换通过ADC将文件传输到Host。参见准备环境完成环境配置。以运行用户登录安装Toolkit组件的服务器。执行命令,将A.java文件传输到Host的指定路径下。adc --host xx.xx....
  • Java读取properties配置文件时,中文乱码解决方法 .
  • java读取json配置文件

    千次阅读 2019-09-02 10:23:30
    那么在java中,怎样读取json的配置文件呢? 首先我们需要了解到的是InputStream 和 OutputStream,它们分别为各种输入输出字节流的基类,所有字节流都继承这两个基类。 我们将配置文件放入根目录下的resource目录下...
  • 在服务器环境(Linux)下读取配置文件写法 public class ReadJSONUtils { public String throws Exception { // 获取/resources/templates目录下的json配置文件 String readString=IOUtils.toString...
  • Java配置文件加载及读写

    千次阅读 2017-06-17 04:23:17
    这两天在测试的过程中,发现该操作只能对classpath下的配置文件进行读写,而操作不到src源码目录下的配置文件。然后我就困惑了!非classpath路径下的文件就不能通过相对路径读写??必须指定绝对路径才能改源码里的...
  • 创建一个我们要读取配置文件 创建resources文件夹,在文件夹下创建配置文件conf.yml. 配置maven的pom文件,使项目编译时编译配置文件到classpath路径下 在build标签下加入如下: <build> <resources...
  • Java远程实现Linux文件内容读取

    万次阅读 2018-06-07 19:03:56
    //首先要下载...import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.util.ArrayList;...
  • java获取配置文件路径

    千次阅读 2015-07-29 10:05:27
    如题:我们在src目录下新建配置文件后,如何获取到配置文件目录是一个棘手的问题;...so:我们在java代码中一般不能写绝对路径,需要写相对路径,让程序自动获取当前运行环境,然后加载配置文件路径
  • Java 实现yaml配置文件读取

    千次阅读 2019-09-04 15:08:55
    常用的配置文件有yaml,xml,properties,json等,今天主要想记录下yaml 文件的读取。废话不多说,直接上代码。 package com.ex.util; import java.io.FileInputStream; import java.io.FileNotFoundException; ...
  • 碰到了用Java.util.Properties读取中文内容(UTF-8格式)的配置文件,发生中文乱码的现象,   Java代码  Properties prop=new Properties();  prop.load(Client.class.g
  • 碰到了用java.util.Properties读取中文内容(UTF-8格式)的配置文件,发生中文乱码的现象,   Java代码  Properties prop=new Properties();  prop.load(Client.class.getClassLoader()....
  • java访问linux服务器读取文件路径 内容精选换一换通过ADC从Host获取文件。参见准备环境完成环境配置。以运行用户登录安装Toolkit组件的服务器。执行命令,从Host获取B.java,并将文件保存为A.java。adc --host xx.xx...
  • JYaml文件流读取/写入Yaml配置文件 yaml配置文件格式规范:- 表示sequence(list列表结构),: 表示map键值对 #以下是示例yaml结构 age: 23 children: - age: 8 name: mary1 sex: man - age: 9 name: ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 127,450
精华内容 50,980
关键字:

java读取配置文件linux

java 订阅
linux 订阅