`
liuguly
  • 浏览: 10218 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

关于jar包的meta-inf以及properties读写以及配置文件定位

 
阅读更多

发布成包后,比如和包在同一目录下有个properties文件或者有个sqlite文件数据库,jar运行后要使用这个数据库,同时还会时不时读取并写入这个properties文件,那么这个时候这个路径怎么搞?

<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->public static void main(String[] args) throws IOException
    
{
        String path 
= System.getProperty("user.dir");// 这个即可获取当前项目所在磁盘路径,那么程序里面就可以根据这个path拼接了
        System.out.println(path);

        
// properties的读写问题,网上大多写的不清不楚,比如这个properties里面本来就有个属性key=A,不能随意修改删除!但是我还要给这个properties添加其它属性,修改其它属性、删除其它属性,怎么搞?
        
// 这个一不小心就覆盖了,或者之前的properties就没了,正确代码如下:
        Properties props = new Properties();
        
// 这里可以利用上面path找到jar包同目录的properties文件,如果properties文件在jar里面,那么是无法修改的,因为IO流写不到jar包里面去
        FileInputStream fis = new FileInputStream(path + "/my.properties");
        props.load(fis);
        props.put(
"key1""B"); //增加
        props.put("key2""C"); //增加
        props.setProperty("key1""1111"); //修改
        props.setProperty("key2""king"); //修改
        props.remove("key2"); //删除
        FileOutputStream fos = new FileOutputStream(path + "/my.properties");
        props.store(fos, 
"注释");
        fis.close();
        fos.close();
    }

java虚拟机可以在内存中解压jar包,并把这个jar文件当成一个路径,在MANIFEST.MF中至少需要两行:
Manifest-Version: 1.0
Created-By: 1.6.0_20 (Sun Microsystems Inc.)

未完

分享到:
评论

相关推荐

    web-inf和meta-inf

    Meta-Inf是一种配置文件,主要用于存放Java应用程序的配置信息,位于JAR文件或EAR文件中。它用于配置应用程序、扩展程序、类加载器和服务。Meta-Inf目录的结构如下: * manifest.mf文件:这个文件是在用JAR打包时...

    Eclipse中web-inf和meta-inf文件夹的信息

    WEB-INF/database.properties 文件** - **用途**: 存储数据库连接配置信息,例如 JDBC 驱动、URL、用户名和密码等。 - **示例内容**: ``` jdbc.drivers=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost/...

    META-INF.rar_META-INF_fsfs

    在IT行业中,`META-INF` 是一个特殊目录,通常出现在Java的JAR文件、Android的APK文件或者一些归档格式如RAR、ZIP中。这个目录包含了一些元数据(metadata)和配置信息,对理解软件的结构和运行至关重要。在这个场景...

    META-INF .zip 代码

    在IT行业中,尤其是在Java开发和软件打包领域,`META-INF`是一个非常重要的目录结构,它通常出现在`.jar`(Java档案)或`.war`(Web应用程序归档)等打包文件中,当然,它也可能存在于`.zip`压缩包中。`META-INF`...

    如何加载jar包中的spring配置文件

    在jar包中的`META-INF/spring.factories`文件中声明配置类,Spring Boot启动时会自动加载。例如: ``` org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.example.MyConfig ``` **总结** 加载...

    hbase-meta-repair-hbase-2.0.2.jar

    ①修改 jar 包中的application.properties,重点是 zookeeper.address、zookeeper.nodeParent、hdfs.root.dir配置项,hdfs 最好写 ip; ②将core-site.xml、hdfs-site.xml添加到BOOT-INF/classes 下; ③开始修复 `...

    META-INF.rar_analog tv_android

    标题"META-INF.rar_analog tv_android"提示我们这个压缩包可能包含了与Analog TV相关的Android应用或系统的资源和配置文件。"META-INF"是Java存档(JAR)文件或者安卓APK文件中常见的一个目录,它存储元数据,如数字...

    spring读取jar中的配置文件

    然而,当配置文件位于JAR的嵌套目录,例如`META-INF/config/application.properties`时,我们需要稍微调整`@PropertySource`的值: ```java @Configuration @PropertySource("classpath:META-INF/config/...

    javax.servlet jar包---解决找不到javax.servlet.*等问题

    - 在传统的Java Web项目中,通常将`javax.servlet.jar`和`javax.servlet.jsp.jar`添加到项目的类路径中,这可以通过在`WEB-INF/lib`目录下放置这两个jar包实现。 - 使用Maven或Gradle等构建工具时,可以在pom.xml...

    springboot编译jar包后无法扫描子jar包中的注解解决方法

    3. **打包 A 项目**:接下来,当你再次打包A项目时,你会发现A项目的`BOOT-INF/lib`目录下只会包含`B.jar`文件。这是因为`B-exec.jar`中的额外依赖项已经被排除了。 4. **验证**:最后,使用`java -jar A.jar`命令...

    log4j-core-2.15.0.jar log4j-2.15.0-rc2

    Apache log4j2零日漏洞,根据 log4j-2.15.0-rc2 版本编译生成log4j-api-2.15.0.jar 1.解压你的jar jar xvf XXX.jar ...jar cvfM0 XXX.jar BOOT-INF META-INF org 5. 启动测试 java -jar XXX.jar

    dex2jar-2.1-nightly-28.zip

    标题“dex2jar-2.1-nightly-28.zip”指的是一个特定版本的dex2jar工具的归档文件,这个版本是2.1的夜间构建版本,编号为28。dex2jar是一个开放源码的Java工具,主要用于将Dalvik执行格式(.dex)的文件转换为Java...

    Eclipse打包成JAR包读取外部JAR包和外部配置文件

    本文将详细介绍如何在Eclipse中将项目打包成JAR文件,并确保能正确引用外部JAR包和读取外部配置文件。 首先,我们来看如何打包项目为JAR。在Eclipse中,选择`Export` -&gt; `Java` -&gt; `Runnable JAR file`。在弹出的...

    xfire-all-1.2.6 架包冲突解决版本

    XFire1.2版本,其中修改了META-INF/services 目录下的javax.xml.ws.spi.Provider文件,解决因为jdk1.6和XFire的架包冲突问题

    log4j-api-2.15.0.jar log4j-2.15.0-rc2

    Apache log4j2零日漏洞,根据 log4j-2.15.0-rc2 版本编译生成log4j-api-2.15.0.jar 1.解压你的jar jar xvf XXX.jar ...jar cvfM0 XXX.jar BOOT-INF META-INF org 5. 启动测试 java -jar XXX.jar

    kotlin-stdlib-common.jar

    kotlin-stdlib-common.jar

    如何生成jar包

    在上述示例中,使用命令`jar cf Crazyit.jar META-INF lee`来创建JAR包,其中`Crazyit.jar`是创建的JAR包文件名,`META-INF`和`lee`分别代表了要包含在JAR包中的目录结构。执行这条命令后,会生成一个名为Crazyit....

    WEB-INF中的web.xml中之前增加以下配置:

    本文将详细介绍WEB-INF中的web.xml文件中的配置,包括Context配置、Resource配置、resource-ref配置,以及对应的Java类编写。 一、Context配置 在WEB-INF中的web.xml文件中,添加以下配置:...

Global site tag (gtag.js) - Google Analytics