`
newslxw
  • 浏览: 213824 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

java运行时获取java类所在目录的properties文件

阅读更多
public final class Config
{

    private static String fileSeparator = System.getProperty("file.separator");
    static
	{
		try
		{
			InputStream in = null;
			String currentJarPath = URLDecoder.decode(Config.class.getProtectionDomain().getCodeSource().getLocation().getFile(), "UTF-8"); //获取当前Jar文件名
			String path = Config.class.getResource("").getPath();			
			if(path.indexOf("!")!=-1)
			{//在jar中
				JarFile currentJar = new JarFile(currentJarPath);
				JarEntry dbEntry = currentJar.getJarEntry("conf/server.properties");
				if(dbEntry != null)
					in = currentJar.getInputStream(dbEntry);
			}
			if(in == null)
			{
				//String loaderPath = Thread.currentThread().getContextClassLoader().getResource("").getPath();
				String loaderPath = currentJarPath;
				String packPath = Config.class.getPackage().toString();
				packPath = packPath.replace("package ", "");
				packPath = "/" + packPath.replace(".", "/");
				if(!loaderPath.endsWith("/"))
					loaderPath = loaderPath.substring(0, loaderPath.lastIndexOf("/")) + fileSeparator;
				loaderPath = loaderPath.replace(packPath, "");
				String tPath = loaderPath+"conf"+fileSeparator+"server.properties";
				logger.info("Config class load server.properties, the path =" + tPath);
				in =new FileInputStream(tPath);
			}
			Properties prop = new Properties();
			prop.load(in);
}
分享到:
评论

相关推荐

    java对properties文件的操作[定义].pdf

    在Java中,有两种主要方式来获取Properties文件的InputStream对象,这将用于读取文件内容: 1. 使用`ClassLoader.getSystemResourceAsStream()`方法,例如: ```java InputStream inputStream = ClassLoader....

    Java项目开发与毕业设计指导

    如果不能运行,将ch07文件夹下的swt.jar加入构建路径,然后在运行中的JVM参数中加入-Djava.library.path="dll所在目录的绝对路径"即可。 也可以在命令行下直接运行该程序,假设ch07文件夹放在D盘跟目录。则在cmd下...

    在Java中获取系统属性.doc

    总之,Java的`Properties`类提供了获取系统属性和管理自定义属性文件的能力,这对于编写跨平台、适应不同环境的Java应用程序至关重要。了解和熟练使用这些功能,可以帮助开发者更好地控制程序的行为并适应各种操作...

    关于java 读取eclipse下文件相对路径 关于Java的文件相对路径问题一直 ....doc

    这意味着当你试图通过Java程序访问文件时,你需要基于这个根目录来构建你的文件路径,而不是基于源代码或类路径。 例如,在你的工程结构中,`xxxx.java`位于`src\come\home\basic`目录下。如果你想要从这个Java文件...

    linux中java获取路径的实例代码

    利用此对象,我们可以获取用户主目录(user.home)、Java运行环境安装目录(java.home)、操作系统名称(os.name)等信息。这些属性对于文件操作和程序配置非常有用。 例如,要想在Java中获取用户的主目录,可以使用以下...

    java i18n 国际化

    在实际应用中,为了确保`.properties`文件能被正确加载,我们需要将其与Java源代码放在同一目录下,或者按照Java的类路径规则进行组织。当项目自动编译后,`.properties`文件会被复制到`build`目录下的相应位置。...

    java项目打包成可执行jar用log4j将日志写在jar所在目录操作

    然后通过在Java代码中获取当前jar文件所在目录的绝对路径,结合文件名,从而实现日志输出到jar所在目录的功能。 当使用IDE(例如IntelliJ IDEA)直接运行项目时,日志文件通常会被写入到源码项目的根目录。而当打包...

    详解java配置文件的路径问题

    "详解java配置文件的路径问题" Java 配置文件的路径问题是 Java 开发中一个常见的问题,对于配置文件的路径问题的处理直接影响...在编写 Java 程序时,使用 classpath 类文件路径可以提高程序的可维护性和可移植性。

    国际化工具 Translater.java

    3. **语言环境检测**:为了自动选择用户所在地区的语言,`Translater.java` 可能会获取系统默认的locale信息,并据此加载相应的资源文件。 4. **动态切换语言**:对于具有多语言切换功能的应用,`Translater.java` ...

    java获取各种路径的基本方法

    Java中获取各种路径的基本方法包括获取当前类所在的工程路径、当前类的绝对路径、以及获取源码包下的文件路径等。以下将详细解释这些方法。 1. 获取当前类所在的工程路径 在Java中,可以通过获取当前类的Class对象...

    java常用词

    这通常通过“File”>“Import”>“General”>“Existing Projects into Workspace”完成,选择项目所在的目录后,Eclipse 会自动识别并加载这些项目。 ### 文件操作与基本命令 - **File**:用于执行与文件相关的...

    Java i18n的简单实现

    例如,我们可以创建一个名为“messages”的properties文件,其中包含如下内容: ``` greeting=Hello goodbye=Goodbye ``` 然后,为不同地区创建相应的版本,如“messages_en.properties”(英文)和“messages_zh_...

    java 国际化说明

    在国际化应用中,消息字符串通常包含占位符(如`{0}`、`{1}`等),这些占位符在运行时会被具体的数据替换。 例如,在资源文件`MessageResource_zh_CH.properties`中定义了如下消息: ``` login_success=\u6b22\u8...

    java的SpringBoot基础常用规范

    执行打包前,建议先运行`mvn clean`命令来清理项目中的旧文件,确保构建时不会受到这些文件的影响。接着,通过执行`mvn package`命令来进行项目的打包。 打完包之后,可以在项目的target目录下找到生成的JAR文件。...

    Java_2_5_3-源码.rar

    5. 反射:在运行时动态地获取类信息并操作类和对象。 6. I/O流:用于处理输入输出,如文件读写、网络通信等。 7. 注解(Annotation):用于元数据,可以用于编译时或运行时的代码处理。 总之,Java_2_5_3-源码.rar...

    windows操作系统中的系统属性.docx

    13. **java.specification.name** - Java运行时环境规范名称,即“Java Platform API Specification”。 14. **java.class.version** - Java类格式版本号,表示支持的Java类文件的版本。 15. **java.class.path** - ...

    java词汇解释

    类没有发现异常,当Java虚拟机或ClassLoader实例试图加载某个类,但找不到相应的类时抛出的异常。 #### Try 尝试,是Java异常处理的一部分,用于指定一段可能会抛出异常的代码块。 #### Catch 捕捉,是Java异常...

Global site tag (gtag.js) - Google Analytics