用eclipse 集成tomcat时,注意配置output的folder:
在传统java类中,一般使用FileInputStream读取.properties 文件
FileInputStream in = new FileInputStream("/db.properties"); Properties prop = new Properties(); prop.load(in); System.out.println(prop.getProperty("oracle-url"));
FileInputStream 需要的是相对路径或是绝对路径。传统java类中,相对路径的根目录指类所在的根目录。
但在servlet中,相对路径的根目录变成了{tomcat}/bin/目录(因为java虚拟机是在此目录运行)。所以在servlet中便不适合使用相对路径。而适合使用绝对路径。使用方法如下:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String path = this.getServletContext().getRealPath("/WEB-INF/classes/db.properties"); FileInputStream in = new FileInputStream(path); Properties prop = new Properties(); prop.load(in); System.out.println(prop.getProperty("oracle-url")); }
但其实ServletContext还提供了更优雅的方式load .propertes 文件:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { InputStream in = this.getServletContext().getResourceAsStream("/WEB-INF/classes/db.properties"); //注意, 虽然此时db.properties 文件是在src文件夹下,但deploy之后,src中的内容都是是放在/WEB-INF/classes/下的。 Properties prop = new Properties(); prop.load(in); System.out.println(prop.getProperty("oracle-url")); }
当然,如果不在servlet容器中,而在一般的类,如UserDao类中如何load properties 文件呢:
String path = UserDao.class.getClassLoader().getResource("db.properties").getPath(); FileInutStream in = new FileInputStream(path); Properties prop = new Properties(); prop.load(in); System.out.println(prop.getProperty("oracle-url"));
此方法是使用类加载器按类的方式load 属性文件。缺点: 类加载器对某个类只会加载一次。如果加载过后,手动改了/classes/db.properties 文件,人为地重新执行此function, 类加载器发现它已经加载过这个文件了,便不会重新加载了。
另一种方法:
InputStream in = UserDao.class.getClassLoader().getResourceAsStream("db.properties"); Properties prop = new Properties(); prop.load(in); System.out.println(prop.getProperty("oracle-url"));
此方法能将properties文件load 多次。每次此方法执行, 都会再次load此属性文件。
下面这个小例子针对的是系统参数:
public class TestProperties { public static void main(String[] args){ for (Object p : System.getProperties().entrySet()) { Map.Entry<String,String> entry = (Map.Entry<String, String>)p; System.out.println(entry.getKey() + "=" + entry.getValue()); } } public static String getDeploymentEnv() { String env = System.getProperty("env"); if(!env.isEmpty()) { env = System.getenv("env"); } if(!env.isEmpty()) { env=""; System.setProperty("env", env); } return env; } }
相关推荐
以下是一些关于Properties Editor 6.0.5的关键知识点: 1. **界面与集成**:该插件无缝集成到Eclipse IDE中,用户可以在Eclipse的文件浏览器中直接打开`.properties`文件,享受定制化的编辑体验。其用户界面友好,...
本资源是一份关于 Properties-PCI 设备补丁的详细一览表,涵盖了声卡、LPC 和以太网等多个方面的 PCI 设备补丁信息。 声卡补丁 在声卡补丁部分,表中列出了六代以前和六代及以后的声卡补丁信息。其中,六代以前的...
- 在菜单栏中选择“帮助”(Help) > “关于Eclipse SDK”(About Eclipse SDK)。 - 在弹出的窗口中,您可以查看到当前Eclipse的版本信息,包括平台版本和构建日期等。 #### 2. 下载与Eclipse版本匹配的JBossTools插件...
以下是一些关于如何在Java中改变Properties文件中键值的具体步骤和相关知识点: 1. **导入所需的库** 在Java代码中,首先需要导入`java.util.Properties`和`java.io.*`等相关的类库,以便进行读写Properties文件的...
这个名为"Android代码-androidjava通用代码关于用properties存储打印的Log.zip"的压缩包提供了一个解决方案,即使用Properties类来存储和读取日志。 Properties类是Java标准库中的一个类,主要用于处理属性键值对,...
### Java读写Properties配置文件详解 #### 一、引言 在Java开发中,`Properties`类被广泛用于处理各种类型的配置文件。...以上就是关于Java读写`Properties`配置文件的详细讲解。希望对你有所帮助!
在提供的压缩包中,`jquery.i18n.properties-1.0.9.js`是插件的源文件,而`使用方法地址.txt`可能包含了更多关于如何使用这个插件的详细说明。阅读这个文本文件可以帮助你更好地理解和应用这个插件。总之,`jquery....
根据给定文件的信息,我们可以总结出关于 Java 中 Properties 和 XML 的读写操作的相关知识点。 ### 一、Properties 文件的读写操作 #### 1. 读取 Properties 文件 在 Java 中,`Properties` 类用于处理属性文件...
至于压缩包“Properties Editor”可能包含的是关于该插件的安装文件、文档、示例或者更新信息。如果你下载并解压这个包,通常会有一个详细的README文件指导你如何安装和使用这个插件。这将帮助你进一步理解和利用...
`myeclipse中安装properties插件`这个话题就是关于如何在MyEclipse中解决这个问题,让开发者能够更加便捷地编辑和管理`.properties`文件。 `.properties`文件通常使用ASCII编码,但为了支持多语言,它们可能包含...
接下来,关于“写入后读取正常,但文件数据未更新”的问题。这通常是由于缓存或文件流没有正确关闭导致的。在写入Properties文件时,确保使用了`Properties.store()`方法,并在操作完成后关闭流: ```java ...
这个压缩包“Java源码读写Properties文件.rar”包含了一份关于如何使用Java来读取和写入Properties文件的源代码示例。下面我们将详细探讨这个主题。 首先,Properties类是Java的标准库类,位于`java.util`包下,它...
5. 配置:"Eclipse属性编辑器(PropertiesEditor)安装说明.rtf"文件很可能是详细的安装指南,包含了更多关于配置和使用的步骤。在安装过程中,遵循这份文档的指示可以帮助解决可能出现的问题。 PropertiesEditor的...
提到的压缩包文件中,"property命令.txt"可能是关于使用Properties文件的相关命令或者操作指南,而"jp.gr.java_conf.ussiy.app.propsearch_2.0.0_for_eclipse3.1.zip"是一个适用于Eclipse 3.1版本的插件包,可能包含...
关于`.properties`文件的修改,以下是一些关键知识点: 1. **文件结构**:`.properties`文件由键值对组成,每行代表一个键值对,例如`username=admin`。键和值之间可以用等号`=`或冒号`:`分隔,一般建议使用等号。 ...
根据给定的部分内容,我们可以看到关于安装Properties编辑器插件的具体步骤: 1. **启动Eclipse的软件更新功能**:首先,在Eclipse中找到并启动“Software Update”功能,这通常位于“Help”菜单下。 2. **查找新...
而“spring+sendmail+模板+properties+vm”这一主题则涉及到Spring框架中关于电子邮件发送以及使用模板和配置文件的部分。以下是这些知识点的详细说明: 1. **Spring Sendmail**: Spring框架提供了`JavaMailSender`...
当配置文件用,在里面读取一些关于路径方面的设置(如ant中的build.properties) 存放一组配置.(类似win下ini, 还要简单些, 因为没有section) 由于难以表达层次, 复杂点可以用xml做配置. 通俗点讲就相当于定义一个...
about=关于我们 ``` 这样的文件会为每种语言创建一个版本,如 zh_CN.properties(中文)、en_US.properties(美国英语)等。 3. **在 ASP.NET 中集成 jQuery.i18n.properties** - **创建资源文件**:在 ASP.NET...
在Laravel框架中,"properties"通常指的是模型(Model)的属性或字段,它们是数据库表中的列...在提供的`properties-master`压缩包文件中,可能包含了关于Laravel模型属性的示例代码或教程,进一步深入学习会有所帮助。