import java.io.*;
import java.util.jar.*;
import java.util.zip.*;
public class ExtractFromJAR {
public void extractMyMDBromJAR(String dest){
try {
String home = getClass().getProtectionDomain().
getCodeSource().getLocation().toString().
substring(6);
JarFile jar = new JarFile(home);
ZipEntry entry = jar.getEntry("mydb.mdb");
File efile = new File(dest, entry.getName());
InputStream in =
new BufferedInputStream(jar.getInputStream(entry));
OutputStream out =
new BufferedOutputStream(new FileOutputStream(efile));
byte[] buffer = new byte[2048];
for (;;) {
int nBytes = in.read(buffer);
if (nBytes <= 0) break;
out.write(buffer, 0, nBytes);
}
out.flush();
out.close();
in.close();
}
catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String args []){
new ExtractFromJAR().extractMyMDBFromJAR(".");
}
}To create an auto-run JAR, first create a manifest.mft
Manifest-Version: 1.0 Classpath: .\mydb.jar Main-Class: ExtractFromJAR
C:\jdk141\bin\jar cvfm mydb.jar manifest.mft ExtractFromJAR.class mydb.mdb
java -jar mydb.jar
String home = getClass().getProtectionDomain().
getCodeSource().getLocation().toString().substring(6);
String home = getClass().getProtectionDomain()
.getCodeSource().getLocation()
.getPath().replaceAll("%20", " ");
Written and compiled by Réal Gagnon ©1998-2005
[ home ]