获取apusic下class文件路径的问题

在Apusic 6.0中,根据启动方式不同,使用`getResource("/")`获取的路径也会不同。为获取统一的绝对路径,文章介绍了一个名为Path的类,通过`getPathFromClass()`方法,无论在哪种启动模式下,都能得到class文件的正宗绝对路径,解决了类加载机制导致的路径不一致问题。
摘要由CSDN通过智能技术生成

情况描述:

将某一个java类和其他一些类打成jar包放到了Apusic-6.0/lib下,然后分别用两种模式启动apusic:一种是直接启动apusic服务器,一种是将apusic配置到eclipse中启动。

对于这两种启动模式在此类中直接用getResource("/");时得到的是不同的路径;

第一种启动得到的结果是file:/APUSIC_DOMAIN/domains/mydomain/./
第二种启动得到的是file:/APUSIC_DOMAIN/classes/

这个问题也许是apusic类加载机制的某些问题,也许另有其他原因,不知道在其他的应用服务器下是否会出现同样的问题。

由于需求是获取绝对路径,并且是在所有的应用之前获取,因此没办法使用Servlet的getRealPath(String str)方法,更不用考虑Session与Application的相关方法了。提炼一下需求,就是无论当前工程当前路径是什么,都要获取到同样的一个绝对路径。而且又要避开上述问题。

搜索下,发现有位仁兄早就解决了这个问题,通过一个封装好的Path类,直接获取某个class文件的绝对路径,并且经过测试,无论何种情况下,都是绝对正宗的绝对路径,此Path类的代码如下所示:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值