当前位置:首页 > 生活 >

如何打开jar的文件(jar文件用什么可以直接运行)

来源:原点资讯(m.360kss.com)时间:2024-04-19 01:26:55作者:YD166手机阅读>>

假设我要将java项目中部分class和配置打成一个jar,然后jar放到其他项目,当访问jar的方法时,jar可以访问自己jar里面的配置文件,这样怎样实现呢?

有人会问为什么要将配置文件打人到jar中呢?可以将配置写错java常量啊,或配置交给调用者去配置啊?

其实也是为了满足这样一种场景:某天我要提供一个jar给其他项目组使用,我也不希望他们去搞懂相关的配置,他们只要调用jar的方法就好了,所以配置交给调用者沟通的使用的成本会比较高;

那为什么不写在jar的常量类里面呢?这就会引发另外一个问题,比如配置里面的某个key的值某天要修改了,那整个jar都不能使用,必须外部重新编译打包新的jar来覆盖了,但是写成配置文件一起打入到jar就不同,jar可以通winRaR的方式打开,修改配置文件,然后保存winRaR就可以了,这样是不是很方便!

假设项目的结构为:

如何打开jar的文件,jar文件用什么可以直接运行(1)

在开发环境(未打jar前),读取propertis文件方式为

public static void main(String[] args) throws Exception { InputStream res = null res = AlibabaMQTT.class.getResourceAsStream("/mqtt-tcp-prop.properties"); properties.load(res);//jar读取 System.out.println(" testv=" properties.getProperty("testv")); }

此时mqtt-tcp-prop.properties在classpath /下面,直接使用/读取即可

当我们将AlibabaMQTT.java和mqtt-tcp-prop.properties打成jar,导入到其他项目中,同样运行:

AlibabaMQTT.main(args);

意外的事情发生,出现空指针异常,为什么呢?

我们观察下jar的结构:

如何打开jar的文件,jar文件用什么可以直接运行(2)

如何打开jar的文件,jar文件用什么可以直接运行(3)

打成的jar,mqtt-tcp-prop.properties多包了有一层resources文件夹,尽管src/main/resources是classpath,但是打成的jar却多了resources,所以,jar获取配置的方式需要改成下面的:

public static void main(String[] args) throws Exception { InputStream res = null res = AlibabaMQTT.class.getResourceAsStream("/resources/mqtt-tcp-prop.properties"); properties.load(res);//jar读取 System.out.println(" testv=" properties.getProperty("testv")); }

可是问题来了,换成上面的,在开发环境运行又要报错了,两者相互矛盾,所以,我们可以再改进,兼容两者的方式:

public static void main(String[] args) throws Exception { InputStream res = null //打成jar的读取方式 InputStream res = AlibabaMQTT.class.getResourceAsStream("/resources/mqtt-tcp-prop.properties"); System.out.println("jar模式运行 res=" res); if(res==null) { //eclipse中的读取方式,即未打成jar的读取方式 res = AlibabaMQTT.class.getResourceAsStream("/mqtt-tcp-prop.properties"); System.out.println("jar模式运行获取失败,此时为非jar模式运行 res=" res); } properties.load(res);//jar读取 System.out.println(" testv=" properties.getProperty("testv")); }

这样就实现了jar读取配置的方式,当然这里有不完美地方,就是读取方式有两种,能不能让eclipse打包后的jar,配置文件不包含目录resources呢?

这个楼主暂时还没有找到方法,希望各位提供宝贵的建议 [握手][握手]!

,

栏目热文

jar文件怎样打开运行(运行jar文件方法)

jar文件怎样打开运行(运行jar文件方法)

下载了一个名为spring-tool-suite-4-4.14.0.RELEASE-e4.23.0-win32.win3...

2024-04-19 01:35:52查看全文 >>

怎么一键打开jar文件(怎么把jar文件解压出来)

怎么一键打开jar文件(怎么把jar文件解压出来)

前言使用IDEA自带打包工具,可以将自己引入的第三方jar包(lib下的jar包,非pom文件中)打包到jar中。Art...

2024-04-19 02:05:29查看全文 >>

jar文件怎么在电脑上打开(如何在电脑上打开jar格式)

jar文件怎么在电脑上打开(如何在电脑上打开jar格式)

告诉你C盘里的每个文件夹都是干嘛的,哪个可以删除,哪些不能碰1.Documents and Settings是什么文件?...

2024-04-19 01:41:48查看全文 >>

怎么用cmd运行jar文件(cmd怎么运行jar包)

怎么用cmd运行jar文件(cmd怎么运行jar包)

java环境配好后jar文件打开闪退,无打开方式,无反应结合burp问题可用命令行直接输入找到对应的文件目录,win r...

2024-04-19 01:44:50查看全文 >>

在电脑上如何打开jar文件(windows打开jar文件)

在电脑上如何打开jar文件(windows打开jar文件)

jar文件怎么打开,以为是压缩包,直接就解压了,但是并没有什么用。jar文件是什么?其实是Java项目下生成的项目文件,...

2024-04-19 01:32:44查看全文 >>

什么软件可以打开jar文件(手机上的jar文件怎么打开)

什么软件可以打开jar文件(手机上的jar文件怎么打开)

原文4.9.3 可执行jar 文件可以使用 jar 命令中的e选项指定程序的入口点,即通常调用Java 执行程序时指定的...

2024-04-19 02:09:17查看全文 >>

广东香芋南瓜种植技术(高产香芋南瓜种植技术与管理)

广东香芋南瓜种植技术(高产香芋南瓜种植技术与管理)

香芋南瓜属于中国南瓜栽培种(C. moschata D.),因其叶片和果实散发出浓郁的芋头香味而得名,研究表明2-乙酰基...

2024-04-19 01:43:50查看全文 >>

日常生活小妙招大全最新(生活小妙招生活小技巧大全)

日常生活小妙招大全最新(生活小妙招生活小技巧大全)

日常生活中,无论是家庭环境和个人,保持干净整齐卫生是很重要的。如果懂得一些实用的小妙招那是最好的。生活妙招包含了生活的方...

2024-04-19 01:26:37查看全文 >>

日常生活小妙招100个(日常生活小妙招100个图片)

日常生活小妙招100个(日常生活小妙招100个图片)

年长者的精神家园掌上伙伴,伴您夕阳生活是一门学问,如果你能学着“偷懒”,也许会变得更有乐趣。今天生活文摘就为大家整理了1...

2024-04-19 02:10:06查看全文 >>

日常生活的小妙招小技巧(1000个绝对经典的日常生活小窍门)

日常生活的小妙招小技巧(1000个绝对经典的日常生活小窍门)

我们每天都面对着各种各样的挑战和任务,有时候一些看似微小的事情也能影响到我们的生活质量。今天我将分享给大家一些简单而实用...

2024-04-19 02:11:16查看全文 >>

文档排行