simplificando (como descompactar arquivo zip usando script em java).
Ola boa noite, meu nome é Daniel, estou fazendo um instalador em java, e preciso saber como descompactar um arquivo zip com senha usando o java,pois os arquivos são de estrema importância e não podem ser vazados de forma alguma, ou seja, o instalador ta com senha, e os arquivos só poderão ir pro diretório se souber a senha do instalador que vai descompactar o zip com senha e mandar pro diretório.
O alvo do instalador é o publico leigo, mas caso alguém que manje tente burlar o sistema eu já tenho proteções o suficiente só falta essa de descompactar o zip com senha.
Eu já fiz um script mas não deu muito certo, diz que nao encontrou o arquivo, sendo que ta na pasta certa.
package teste2;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
public class Teste3 {
public static void main(String[] args) throws FileNotFoundException, IOException {
String myZip = "C:\\Users\\Adm\\Desktop\\teste.zip";
final int BUFFER = 2048;
String arquivo = null;
FileInputStream fiz = new FileInputStream( arquivo );
BufferedInputStream bis = new BufferedInputStream( fiz, BUFFER );
ZipInputStream zis = new ZipInputStream( bis );
ZipEntry entrada = null;
while( (entrada = zis.getNextEntry()) != null ) {
int bytesLidos = 0;
byte dados[] = new byte[BUFFER];
//grava o arquivo em disco
FileOutputStream fos = null;
try {
fos = new FileOutputStream(entrada.getName());
} catch (FileNotFoundException ex) {
Logger.getLogger(Teste3.class.getName()).log(Level.SEVERE, null, ex);
}
BufferedOutputStream dest = new BufferedOutputStream(fos, BUFFER);
try {
while( (bytesLidos = zis.read(dados, 0, BUFFER)) != -1 ) {
dest.write( dados, 0, bytesLidos );
} } catch (IOException ex) {
Logger.getLogger(Teste3.class.getName()).log(Level.SEVERE, null, ex);
}
try {
dest.flush();
} catch (IOException ex) {
Logger.getLogger(Teste3.class.getName()).log(Level.SEVERE, null, ex);
}
try {
dest.close();
} catch (IOException ex) {
Logger.getLogger(Teste3.class.getName()).log(Level.SEVERE, null, ex);
}
try {
fos.close();
} catch (IOException ex) {
Logger.getLogger(Teste3.class.getName()).log(Level.SEVERE, null, ex);
}
}
zis.close();
bis.close();
fiz.close();
}
}