java jar 发布 读取properties文件失败

博客主要介绍Java Jar包发布时的常见问题及解决办法。包括读取properties文件失败,采用JarFile类读取;打包spring applicationContext.xml文件找不到,可选择源码和jar包分开打包;cmd中运行java -jar文件乱码,需设置项目编码、指定虚拟机编码及修改cmd编码等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(1)java jar 发布 读取properties文件失败 
用 String  path = Test.class.getResource("/").getPath(); 
获取根目录后+文件名读取失败,因此采用JarFile类读取

private static Connection getJdbcConnection() throws Exception{  
    Connection conn = null;  
    try {  
        logger.info("开始获取properties文件");  
        Properties properties = new Properties();  
        JarFile jarFile = new JarFile("PPFTest.jar");  
        ZipEntry zipEntry = jarFile.getEntry("jdbc.properties");  
        logger.info("获取zipEntry:"+zipEntry);  
        InputStream in = jarFile.getInputStream(zipEntry);  
        logger.info("读取到的文件" + in);  
        properties.load(in);  
        String jdbcUrl =    properties.getProperty(MinaConstUtil.JDBC_JDBCURL);  
        logger.info("读取到的jdbcUrl :"+jdbcUrl);  
        String driverClass = properties.getProperty(MinaConstUtil.JDBC_DRIVERCLASS);  
        String username =   properties.getProperty(MinaConstUtil.JDBC_USERNAME);  
        String password =   properties.getProperty(MinaConstUtil.JDBC_PASSWORD);  
        Class.forName(driverClass);  
        logger.info("结束获取properties文件");  
    } catch (Exception e) {  
        logger.error("关闭数据库连接", e );  
        throw e;  
    }finally{  
        logger.info("关闭数据库连接");  
    }  
    return conn;  
}  

 (2)java jar 打包发布 spring applicationContext.xml 找不到此文件 

打包为runnable jar时 选择 
copy required libraries into a sub-fold... 源码和jar 包分开打包 

(3)cmd中运行 java -jar 文件乱码 
1、工程项目采用字符编码 、preference  workspace text file encoding 设置都应为utf-8 
2、java -Dfile.encoding=utf-8 -jar 指定虚拟机编码 
3、修改cmd 编码 
chcp 65001  通过 chcp命令改变代码页,UTF-8的代码页为65001 

命令行标题栏上点击右键,选择"属性"->"字体",将字体修改为True Type字体"Lucida Console",然后点击确定将属性应用到当前窗口。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值