public static String getPathFromClass(Class cls) throws IOException {
String path = null;
if (cls == null) {
throw new NullPointerException();
}
URL url = getClassLocationURL(cls);
if (url != null) {
path = url.getPath();
if ("jar".equalsIgnoreCase(url.getProtocol())) {
try {
path = new URL(path).getPath();
} catch (MalformedURLException e) {
}
int location = path.indexOf("!/");
if (location != -1) {
path = path.substring(0, location);
}
}
File file = new File(path);
path = file.getCanonicalPath();
}
return path.substring(0, path.lastIndexOf(File.separator)+1);
}
private static URL getClassLocationURL(final Class cls) {
if (cls == null)
throw new IllegalArgumentException("null input: cls");
URL result = null;
final String clsAsResource = cls.getName().replace('.', '/').concat(".class");
final ProtectionDomain pd = cls.getProtectionDomain();
if (pd != null) {
final CodeSource cs = pd.getCodeSource();
if (cs != null)
result = cs.getLocation();
if (result != null) {
if ("file".equals(result.getProtocol())) {
try {
if (result.toExternalForm().endsWith(".jar")
|| result.toExternalForm().endsWith(".zip"))
result = new URL("jar:".concat(
result.toExternalForm()).concat("!/")
.concat(clsAsResource));
else if (new File(result.getFile()).isDirectory())
result = new URL(result, clsAsResource);
} catch (MalformedURLException ignore) {
}
}
}
}
if (result == null) {
final ClassLoader clsLoader = cls.getClassLoader();
result = clsLoader != null ? clsLoader.getResource(clsAsResource)
: ClassLoader.getSystemResource(clsAsResource);
}
return result;
}
分享到:
相关推荐
企业与创投共赢之道(3)融资策划之成长路经设计整理.pdf
三网融合之路经探寻.pdf
3. **MSSCCPRJ.SCC** - 这是源代码控制的项目文件,与版本控制有关,与获取文件夹路径的直接关系不大。 4. **工程1.vbp** - 这是VB工程文件,记录了项目的元数据,包括引用的库、模块、窗体等信息。 5. **工程1.vbw*...
山东大学数据结构与算法课程设计实验模拟文件目录系统(有详细注释)实现源代码(本实验的全部源程序代码,程序风格清晰易理解,有充分的注释)和操作文件 设计并实现目录树 CatalogTree 的ADT,应用CatalogTree结构...
以下是一个简单的示例,展示如何使用VB的FSO来获取文件夹中的所有文件和子文件夹: ```vb Dim fso As Object Dim folder As Object Dim file As Object Dim wordApp As Object Dim wordDoc As Object Set fso = ...
Java语言基础.pdf Math类的常用方法.pdf String与StringBuffer.pdf Vector类的用法.pdf 迭代器Iterator的用法.pdf 反射机制.pdf 访问路经问题.pdf 基于MVC和RMI的分布.pdf 经典的查询方式.pdf 经典的显示方法.pdf ...
从每口油井都要有一条输油管道沿最短路经(或南或北)与主管道相连。如果给定n口油井的位置,即它们的x 坐标(东西向)和y 坐标(南北向),应如何确定主管道的最优位置,即使各油井到主管道之间的输油管道长度总和最小的...
Netty+H5实现实时进度条文件上传,支持断点续传。 1、WebSocketServer:服务启动类 2、服务启动后,浏览器访问http://localhost:9999 3、FileWebSocketFrameHandler类SERVER_SAVE_PATH常量为文件上传保存路经
使用方法:mount -t 文件系统类型 设备路经 访问路经。 6. umount 命令:用于卸载文件系统。使用方法:umount /mnt/cdrom。 文件权限命令 1. chmod 命令:用于更改文件的权限。使用方法:chmod u+s 文件、chmod g+...
功能介绍: 需手动导入驱动包mysql-connector-java-...JdbcSingleUtils.java 是单利模式创建连接对象 JdbcUtils.java 静态类方式创建连接对象 注意数据库连接账户密码 包内有anbyke.sql数据库文件 运行方法: 简单...
【H5游戏源码 单机版雷霆HTML.zip】是一个包含HTML5游戏源代码的压缩文件,这为我们提供了一个深入理解H5游戏开发的机会。HTML5游戏源码是指使用HTML5、CSS3和JavaScript等技术编写的游戏的原始代码,这些技术是现代...
人工神经网络(Artificial Neural Networks, ANN)是模拟生物神经元结构的一种计算模型,它在解决复杂优化问题方面表现出强大的能力。Hopfield网络是ANN的一个重要分支,由John J. Hopfield于1982年提出,主要用于...
在wwwroot/lib/ueditor里面 页面你是可以随便改的必要的留着就行 web项目里资源文件中ueditor.config.js里面的统一的请求路径前面必须加上图片服务器的路经 以上面为例http://127.1.1.1:80/api/UEditor 记得添加...
该插件旨在用于具有遗留Java代码库的项目,其中资源文件与Java源文件一起放置。 用法 将插件包括在project.clj的:plugins矢量中: :plugins [[lein-javac-resources " 0.1.1 " ]] :omit-source true ; excludes ....
4. 磁盘挂载: mount -t 文件系统类型 设备路经 访问路经。 文件权限 1. 文件权限修改: chmod u+s file 为 file 的属主加上特殊权限。 chmod g+r file 为 file 的属组加上读权限。 chmod o+w file 为 file 的其它...
13. find 命令:用于查找路经所在范围内满足字符串匹配的文件和目录。 14. ln 命令:用于创建硬链接或符号链接。 磁盘管理 1. df 命令:用于报告文件系统的总容量、使用量和剩余容量。 2. du 命令:用于查看目录的...
文件管理 # pwd pwd 查看当前所在目录的绝对路经 文件管理 # cd cd .. 回当前目录的上一级目录 文件管理 # cd cd - 回上一次所在的目录 文件管理 # cd cd ~ 或 cd 回当前用户的宿主目录 文件管理 # cd cd ~...
6. mount -t 文件系统类型 设备路经 访问路经:挂载文件系统。 7. umount /mnt/cdrom:卸载/mnt/cdrom为空。 文件权限 1. chmod u+s 文件:为文件的属主加上特殊权限。 2. chmod g+r 文件:为文件的属组加上读权限...
更新说明:1,隐藏了播放文件的路经以GetMtvUrl.ijun?id=1005的形试2,后台作了全部的美化动作,3,增加的用户功能4,增加了歌手管理的功能5,修改了后台搜索歌曲时直接转到修改页面,现以列表的形试显示,可以选取...