Java读取Jar中资源文件
来源:互联网 发布:前三个月非农数据 编辑:程序博客网 时间:2024/05/07 23:13
import java.io.IOException;import java.io.InputStream;import java.net.JarURLConnection;import java.net.MalformedURLException;import java.net.URL;import java.util.jar.JarEntry;import java.util.jar.JarFile;import org.apache.commons.io.IOUtils;public class ResourceLoadFromJarUtil { /** * @param args * @throws IOException */ public static void main(String[] args) throws IOException { /* 资源文件路径,不能以'/'字符字符开头 */ String resourcePath = "struts-plugin.xml"; /* 获取ClassPath下的所有jar路径 */ String[] cps = System.getProperty("java.class.path").split(";"); /* 读取本地Jar文件 */ for (String cp : cps) { if (!cp.endsWith(".jar")) { continue; } InputStream in = loadResourceFromJarFile(cp, resourcePath); if (in != null) { System.err.println(IOUtils.toString(in)); in.close(); } } /* 读取本地Jar文件 */ for (String cp : cps) { if (!cp.endsWith(".jar")) { continue; } InputStream in = loadResourceFromJarURL(cp, resourcePath); if (in != null) { System.err.println(IOUtils.toString(in)); in.close(); } } /* 读取网络Jar文件 */ InputStream in = loadResourceFromJarURL( "http://localhost:8080/SpringStruts2Integration/struts2-spring-plugin-2.3.4.1.jar", resourcePath); if (in != null) { System.err.println(IOUtils.toString(in)); in.close(); } } /** * 读取Jar文件中的资源 * * @param jarPath * 本地jar文件路径 * @param resPath * 资源文件所在jar中的路径(不能以'/'字符开头) * @return 如果资源加载失败,返回null */ public static InputStream loadResourceFromJarFile(String jarPath, String resPath) { if (!jarPath.endsWith(".jar")) { return null; } try { JarFile jarFile = new JarFile(jarPath); JarEntry jarEntry = jarFile.getJarEntry(resPath); if (jarEntry == null) { return null; } return jarFile.getInputStream(jarEntry); } catch (IOException e) { e.printStackTrace(); return null; } } /** * 读取Jar文件中的资源 * * @param jarUrl * 本地jar文件或网络上(ttp://host:port/subpath/jarfile.jar)jar文件路径 * @param resPath * 资源文件所在jar中的路径(不能以'/'字符开头) * @return 如果资源加载失败,返回null */ public static InputStream loadResourceFromJarURL(String jarUrl, String resPath) { if (!jarUrl.endsWith(".jar")) { return null; } URL url = null; if (jarUrl.startsWith("http://")) { try { url = new URL("jar:" + jarUrl + "!/"); } catch (MalformedURLException e) { e.printStackTrace(); return null; } } else { try { url = new URL("jar:file:/" + jarUrl + "!/"); } catch (MalformedURLException e) { e.printStackTrace(); return null; } } try { JarURLConnection jarURLConnection; jarURLConnection = (JarURLConnection) url.openConnection(); JarFile jarFile = jarURLConnection.getJarFile(); JarEntry jarEntry = jarFile.getJarEntry(resPath); if (jarEntry == null) { return null; } return jarFile.getInputStream(jarEntry); } catch (IOException e) { e.printStackTrace(); return null; } }}
转载地址:http://www.verydemo.com/demo_c89_i25550.html
- Java读取Jar中资源文件
- 读取jar中资源文件的问题
- 读取jar包中资源文件的两种方法
- 获取jar包中资源文件
- 黑马程序员--java中资源文件的各种读取方式
- Java工程读取resources中资源文件路径问题
- S60 中资源文件的读取
- 替换java中资源文件类
- Jar包中资源文件的获取
- 在Applet中引用jar中资源文件的KEY!
- WEB应用中资源文件的读取和常用配置文件
- Android中资源文件分析
- 引用framework中资源文件
- liferay中资源文件下载
- Spring中资源文件
- Android应用作为jar包导入到其他app中资源文件找不到问题
- 实现servlet的转发和读取Web应用中资源文件【持续更新】
- java-jar包关联源文件
- js动态添加标签
- Why does BitmapSource.Create throw an ArgumentException?
- IOS沙盒(sandbox)机制和文件操作(三)
- 如何在Mac Xcode下使用SVN
- XCode快捷键
- Java读取Jar中资源文件
- 事务管理(DataSourceTransactionManager,HibernateTransactionManger,JTATransactionManager)
- 正确修改 sysman 用户的密码
- oracle的启动和关闭
- Android之通过向WebService服务器发送XML数据获取相关服务
- android:屏幕自适应
- SeekBar和RatingBar
- VTK安装
- Unity3D 附加脚本