Then, from a console do a:
export KERN_DIR=path_to_the_sources
before running the install script
import java.util.*;
import java.io.*;
import org.apache.commons.compress.archivers.zip.*;
import org.apache.commons.compress.utils.IOUtils;
public void unzip(String ziplocation, String zipname, String unziplocation){
//method variables
private ZipFile zipFile;
private Enumeration<ZipArchiveEntry> entries;
private ZipArchiveEntry entry;
private File entryDestination;
private InputStream in;
private OutputStream out;
zipFile = new ZipFile(ziplocation+File.separator+zipname);
//get zip file content references
entries = zipFile.getEntries();
if(entries != null){
//for each reference, unzip to unziplocation, creating directories if needed
while (entries.hasMoreElements()) {
entry = entries.nextElement();
entryDestination = new File(unziplocation, entry.getName());
entryDestination.getParentFile().mkdirs();
if (entry.isDirectory()){
entryDestination.mkdirs();
}
else {
in = zipFile.getInputStream(entry);
out = new FileOutputStream(entryDestination);
IOUtils.copy(in, out);
//close streams ignoring exceptions
IOUtils.closeQuietly(in);
IOUtils.closeQuietly(out);
}
}
}
}
import java.util.*;
import java.io.*;
import org.apache.commons.compress.utils.IOUtils;
import org.apache.commons.compress.archivers.*;
import org.apache.commons.compress.archivers.zip.*;
public void zip(String location, String name, String ziplocation, String zipname){
//method variables
private OutputStream out;
private ArchiveOutputStream zip_out;
private File f;
//out writes the final file, zip_out creates the zip archive
out = new FileOutputStream(new File(ziplocation+File.separator+zipname+".zip"));
zip_out = new ArchiveStreamFactory().createArchiveOutputStream(ArchiveStreamFactory.ZIP, out);
//zip it
File f = new File(location+File.separator+name);
//first time baseDir is empty
dozip(f, "");
//close archive
zip_out.finish();
out.close();
}
//aux method for zipping
private void dozip(File myFile, String baseDir) throws Exception{
//maintain the directory structure while zipping
String entryName = baseDir+myFile.getName();
//DO NOT do a putArchiveEntry for folders as it is not needed
//if it's a directory then list and zip the contents. Uses recursion for nested directories
if(myFile.isDirectory() == true){
File[] filesList = myFile.listFiles();
if(filesList != null){
for (File file : filesList) {
dozip(file, entryName+File.separator);
}
}
}
else{
//add file
zip_out.putArchiveEntry(new ZipArchiveEntry(myFile, entryName));
IOUtils.copy(new FileInputStream(myFile), zip_out);
zip_out.closeArchiveEntry();
}
}