Remove unused class
This commit is contained in:
parent
3af0ea5c4f
commit
b6de8f83b3
@ -1,172 +0,0 @@
|
|||||||
package eva2.tools;
|
|
||||||
|
|
||||||
import java.io.BufferedInputStream;
|
|
||||||
import java.io.FileInputStream;
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.util.Enumeration;
|
|
||||||
import java.util.Hashtable;
|
|
||||||
import java.util.zip.ZipEntry;
|
|
||||||
import java.util.zip.ZipFile;
|
|
||||||
import java.util.zip.ZipInputStream;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* JarResources: JarResources maps all resources included in a
|
|
||||||
* Zip or Jar file. Additionally, it provides a method to extract one
|
|
||||||
* as a blob.
|
|
||||||
*/
|
|
||||||
public final class JarResources {
|
|
||||||
|
|
||||||
// external debug flag
|
|
||||||
public boolean debugOn = false;
|
|
||||||
|
|
||||||
// jar resource mapping tables
|
|
||||||
private Hashtable<String,Integer> htSizes = new Hashtable<>();
|
|
||||||
private Hashtable<String,byte[]> htJarContents = new Hashtable<>();
|
|
||||||
|
|
||||||
// a jar file
|
|
||||||
private String jarFileName;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* creates a JarResources. It extracts all resources from a Jar
|
|
||||||
* into an internal HashTable, keyed by resource names.
|
|
||||||
*
|
|
||||||
* @param jarFileName a jar or zip file
|
|
||||||
*/
|
|
||||||
public JarResources(String jarFileName) {
|
|
||||||
this.jarFileName = jarFileName;
|
|
||||||
init();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Extracts a jar resource as a blob.
|
|
||||||
*
|
|
||||||
* @param name a resource name.
|
|
||||||
*/
|
|
||||||
public byte[] getResource(String name) {
|
|
||||||
return htJarContents.get(name);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* initializes internal hash tables with Jar file resources.
|
|
||||||
*/
|
|
||||||
private void init() {
|
|
||||||
try {
|
|
||||||
// extracts just sizes only.
|
|
||||||
ZipFile zf = new ZipFile(jarFileName);
|
|
||||||
Enumeration e = zf.entries();
|
|
||||||
while (e.hasMoreElements()) {
|
|
||||||
ZipEntry ze = (ZipEntry) e.nextElement();
|
|
||||||
if (debugOn) {
|
|
||||||
System.out.println(dumpZipEntry(ze));
|
|
||||||
}
|
|
||||||
htSizes.put(ze.getName(), (int) ze.getSize());
|
|
||||||
}
|
|
||||||
zf.close();
|
|
||||||
|
|
||||||
// extract resources and put them into the HashTable.
|
|
||||||
FileInputStream fis = new FileInputStream(jarFileName);
|
|
||||||
BufferedInputStream bis = new BufferedInputStream(fis);
|
|
||||||
ZipInputStream zis = new ZipInputStream(bis);
|
|
||||||
ZipEntry ze;
|
|
||||||
while ((ze = zis.getNextEntry()) != null) {
|
|
||||||
if (ze.isDirectory()) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (debugOn) {
|
|
||||||
System.out.println(
|
|
||||||
"ze.getName()=" + ze.getName() + "," + "getSize()=" + ze.getSize()
|
|
||||||
);
|
|
||||||
}
|
|
||||||
int size = (int) ze.getSize();
|
|
||||||
// -1 means unknown size.
|
|
||||||
if (size == -1) {
|
|
||||||
size = htSizes.get(ze.getName());
|
|
||||||
}
|
|
||||||
byte[] b = new byte[size];
|
|
||||||
int rb = 0;
|
|
||||||
int chunk;
|
|
||||||
while ((size - rb) > 0) {
|
|
||||||
chunk = zis.read(b, rb, size - rb);
|
|
||||||
if (chunk == -1) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
rb += chunk;
|
|
||||||
}
|
|
||||||
// add to internal resource HashTable
|
|
||||||
htJarContents.put(ze.getName(), b);
|
|
||||||
if (debugOn) {
|
|
||||||
System.out.println(
|
|
||||||
ze.getName() + " rb=" + rb +
|
|
||||||
",size=" + size +
|
|
||||||
",csize=" + ze.getCompressedSize()
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (NullPointerException e) {
|
|
||||||
System.out.println("done.");
|
|
||||||
} catch (IOException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Dumps a zip entry into a string.
|
|
||||||
*
|
|
||||||
* @param ze a ZipEntry
|
|
||||||
*/
|
|
||||||
private String dumpZipEntry(ZipEntry ze) {
|
|
||||||
StringBuilder sb = new StringBuilder();
|
|
||||||
if (ze.isDirectory()) {
|
|
||||||
sb.append("d ");
|
|
||||||
} else {
|
|
||||||
sb.append("f ");
|
|
||||||
}
|
|
||||||
if (ze.getMethod() == ZipEntry.STORED) {
|
|
||||||
sb.append("stored ");
|
|
||||||
} else {
|
|
||||||
sb.append("defalted ");
|
|
||||||
}
|
|
||||||
sb.append(ze.getName());
|
|
||||||
sb.append("\t");
|
|
||||||
sb.append("").append(ze.getSize());
|
|
||||||
if (ze.getMethod() == ZipEntry.DEFLATED) {
|
|
||||||
sb.append("/").append(ze.getCompressedSize());
|
|
||||||
}
|
|
||||||
return (sb.toString());
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Is a test driver. Given a jar file and a resource name, it tries to
|
|
||||||
* extract the resource and then tells us whether it could or not.
|
|
||||||
* <p>
|
|
||||||
* <strong>Example</strong>
|
|
||||||
* Let's say you have a JAR file which jarred up a bunch of gif image
|
|
||||||
* files. Now, by using JarResources, you could extract, create, and display
|
|
||||||
* those images on-the-fly.
|
|
||||||
* <pre>
|
|
||||||
* ...
|
|
||||||
* JarResources JR=new JarResources("GifBundle.jar");
|
|
||||||
* Image image=Toolkit.createImage(JR.getResource("logo.gif");
|
|
||||||
* Image logo=Toolkit.getDefaultToolkit().createImage(
|
|
||||||
* JR.getResources("logo.gif")
|
|
||||||
* );
|
|
||||||
* ...
|
|
||||||
* </pre>
|
|
||||||
*/
|
|
||||||
public static void main(String[] args) throws IOException {
|
|
||||||
if (args.length != 2) {
|
|
||||||
System.err.println(
|
|
||||||
"usage: java JarResources <jar file name> <resource name>"
|
|
||||||
);
|
|
||||||
System.exit(1);
|
|
||||||
}
|
|
||||||
JarResources jr = new JarResources(args[0]);
|
|
||||||
byte[] buff = jr.getResource(args[1]);
|
|
||||||
if (buff == null) {
|
|
||||||
System.out.println("Could not find " + args[1] + ".");
|
|
||||||
} else {
|
|
||||||
System.out.println("Found " + args[1] + " (length=" + buff.length + ").");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
Loading…
x
Reference in New Issue
Block a user