package org.nutz.resource; import java.io.IOException; public class JarEntryInfo { public String getEntryName() { return entryName; } public String getJarPath() { return jarPath; } public JarEntryInfo setEntryName(String entryName) { this.entryName = entryName; return this; } public JarEntryInfo setJarPath(String jarPath) { this.jarPath = jarPath; return this; } @Override public String toString() { return String.format("%s!/%s", jarPath, entryName); } private String entryName; private String jarPath; public JarEntryInfo() {} /** * 从一个包含 jar 的全路径里,截取 jar 文件的路径,以及 Entry的path。 * <p> * Mac / Linux / Windows jar 文件的路径的分隔符号略有不同 * <ul> * <li><b>Windows</b> - file:\D:\a\b\c\xyz.jar!\m\n\T.class * </ul> * * @param path * 文件全路径 * * @throws IOException */ public JarEntryInfo(String path) { path = path.replace('\\', '/'); int posL = path.indexOf("file:"); posL = posL < 0 ? 0 : posL + "file:".length(); int posR = path.indexOf(".jar!") + ".jar!".length(); this.jarPath = path.substring(posL, posR - 1); this.entryName = path.substring(posR + 1); } public JarEntryInfo(String jarPath, String entryName) { this.jarPath = jarPath; this.entryName = entryName; } }