将这两个类粘贴到项目中:
获得应用程序路径类:
package com.rayoo.util;
import java.io.UnsupportedEncodingException;
import java.net.URL;
import java.net.URLDecoder;
import org.apache.log4j.Logger;
public class FileTool {
private static Logger logger = Logger.getLogger("com.auib.util.FileTool");
public static String getAppPath(){
//获得应用程序路径
URL appUrl = FileTool.class.getClassLoader().getResource("");
String appPath = appUrl.getPath();
if (WINDOWS && appPath.startsWith("/"))
appPath = appPath.substring(1);
try {
appPath = URLDecoder.decode(appPath, "UTF-8");
}
catch (UnsupportedEncodingException e) { }
return appPath;
}
private static final boolean WINDOWS = System.getProperty("os.name").startsWith("Windows");
}
读取配置文件单例类:
package com.rayoo.util;
import java.io.File;
import java.io.FileInputStream;
import java.util.Properties;
/**
* 读取属性文件的配置参数
*/
public class ServerConfig {
//private static Logger logger = Logger.getLogger("product run.trns.core.parse.NodeParser");
// 属性配置
private static Properties log = null;
// 单例模式
private static ServerConfig config = null;
// 判断当前系统环境
private static final boolean WINDOWS = System.getProperty("os.name").startsWith("Windows");
// 私有构造
private ServerConfig(){ }
// 单例模式初始化
public static ServerConfig getInstance(){
if(config == null){
config = new ServerConfig();
init();
}
return config;
}
// 初始化函数
private static void init(){
if (log == null){
String configfile = null;
if(WINDOWS)
configfile = "server-config-w.properties";
else
configfile = "server-config-l.properties";
String appPath = FileTool.getAppPath();
File file = new File(appPath);
appPath = file.getParent();
String configPath = appPath;
appPath= appPath + File.separator + configfile;
file = new File(appPath);
FileInputStream fis = null;
try{
if (!file.exists()){
System.out.println("配置文件不存在");
System.exit(-1);
}
fis = new FileInputStream(file);
log = new Properties();
log.load(fis);
log.setProperty("ConfigPath", configPath);
fis.close();
}
catch(Exception e){
//logger.error("config::init::cann't load log file" + e.getMessage());
System.exit(-1);
}
}
}
public Properties getWorkInfo(){
return log;
}
public String getProperty(String key){
return log.getProperty(key);
}
/*
public synchronized void writeLog(String key, String value) throws Exception{
setProperty(key, value);
try{
save();
}
catch(Exception e){
throw new Exception(e.getMessage());
}
}
*/
/*
private void setProperty(String key, String value){
log.setProperty(key, value);
}
private void save() throws Exception{
FileOutputStream fos = null;
try{
fos = new FileOutputStream(file);
log.store(fos, "");
fos.close();
}
catch(Exception e){
throw new Exception(e.getMessage());
}
}
*/
}
将windows和linux配置文件放到WEB-INF目录下:
windows环境文件:
server-config-w.properties
linux环境配置文件:
server-config-l.properties
获取属性值的代码:
String value = ServerConfig.getInstance().getProperty("key");
或:只要配置的属性文件在类路径下,则可通过如下代码获取:
String configFile = "server-config.properties";
InputStream is = JdbcUtilSingleton.class.getClassLoader().getResourceAsStream(configFile);
Properties props = new Properties();
props.load(is);
获得属性文件的绝对路径:
File iniFile = new File(Holiday.class.getClassLoader().getResource("holiday.properties").getPath());
分享到:
相关推荐
正确的方法是使用 `tar -zxvf logstash-8.2.3-linux-x86_64.tar.gz`,这会创建一个名为 "logstash-8.2.3" 的目录,包含所有 Logstash 的执行文件和配置文件。 Logstash 主要由三个主要组件构成: 1. **Inputs**:...
在IT领域,Windows和Linux系统是两种广泛使用的操作系统,它们各有优势且在不同的场景下有其独特的应用。CentOS作为Linux发行版中的一个热门选择,因其稳定性和安全性而备受青睐。PHP是一种流行的服务器端脚本语言,...
### 理解 Linux 配置文件:关键知识点解析 #### 一、引言 Linux 系统以其高度可定制性...随着对 Linux 系统深入了解,用户可以更加熟练地利用配置文件来优化系统性能,增强安全性,甚至自定义系统行为以满足特定需求。
7. **配置解析**:Nginx的配置文件解析由`ngx_conf_file`模块完成,`ngx_conf_parse`函数逐行读取配置并解析。 三、源码注释与学习方法 该压缩包包含详尽的函数中文注释,这对于初学者来说是一份宝贵的资源。学习...
Nginx的配置文件通常位于`/etc/nginx/nginx.conf`,但每个站点的配置文件可能在`/etc/nginx/sites-available`目录下。创建一个新的配置文件,例如`my_website.conf`,并启用它: ``` sudo nano /etc/nginx/sites-...
2. 配置文件复制:将 `/usr/lib/ictbase/conf/hbase-site.xml` 文件复制到 `data-integration/plugins/pentaho-big-data-plugin/hadoop-configurations/hdp21`。 3. 清理 lib 目录:删除 `data-integration/plugins/...
"filebeat-7.6.0-linux-x86_64.tar.gz"这个压缩包包含了适用于Linux x86_64架构的Filebeat 7.6.0版本。安装过程通常包括解压、配置和启动三个步骤: - 解压:`tar -zxvf filebeat-7.6.0-linux-x86_64.tar.gz` - ...
3. **配置启动选项**:在iPXE启动脚本中,需指定Preseed文件的位置,这样客户端就能在安装过程中自动读取。 **五、Preseed文件示例** 以下是一个简单的Preseed文件示例,包含了语言选择、国家设置、键盘布局以及...
通过上述步骤,我们可以利用Zabbix实现对Linux系统的磁盘IO进行全面监控,不仅能够快速发现性能问题,还能够通过自定义的图表来直观地展示磁盘IO的变化趋势。这对于提高系统的稳定性和性能具有重要意义。在实际应用...
配置文件位于`/opt/apache-activemq-5.x.x/conf`目录下,主要关注`activemq.xml`。这个文件定义了ActiveMQ的核心配置,包括消息存储、网络连接等。根据需求,你可以调整这些设置以优化性能或安全性。 3. **启动和...
首先,你需要使用 `xz` 工具解压文件(如 `tar xJvf node-v6.10.2-linux-x64.tar.xz`),然后将解压后的目录移动到 `/usr/local` 或自定义路径,并设置环境变量,使得系统可以在任何地方执行 Node.js 和 npm 命令。...
2.Windows linux双系统 3.只安装 Ubuntu 4.硬盘安装 四、硬件驱动的安装--------------------------------------------------------------------------------- Linux的初体验----------------------------------...
macOS/Linux/Windows 32/64-bit- 单文件简单易部署- 不依赖其他组件- 支持读取配置文件方式启动 登陆用户认证- 定时刷新 Beanstalk 队列服务器状态- 对每个 Tube 的 ready/delayed/buried 状态进行管理- 支持批量...
#### 二、Linux内核引导时从`/etc/fstab`中读取要加载的文件系统 - **文件用途**:`/etc/fstab`文件用于定义在系统启动时自动挂载的文件系统。 - **格式**: - 第一列:要挂载的文件系统(通常是设备名或UUID)。 ...
`tar`(tape archive)命令用于创建、读取和修改存档文件。它通常用于备份文件或目录以及分发软件包。其基本语法如下: ``` tar [选项] 存档文件 [文件或目录] ``` - **选项**: - `-c` 或 `--create`:创建新...
在Eclipse中,右键点击项目,选择`Properties` -> `Java Build Path` -> `Source`,设置输出目录为项目根目录下的自定义路径,例如:`/src/main/webapp/WEB-INF/classes`。 然后,我们需要配置Tomcat的`server.xml`...