Saya memiliki file jar Java yang dibungkus dengan file yang dapat dieksekusi. Ini berfungsi dengan baik ketika diklik dua kali.
Saya mencoba menyalin file byte demi byte dan menulis ulang ke file executable baru.
Ketika saya mencoba menjalankan salinan baru ini, saya mendapatkan kotak pesan kesalahan:
Kode yang saya gunakan untuk menyalin byte file adalah sebagai berikut:
import java.nio.file.*;
import java.io.*;
public class Exec {
public static void main(String args[])throws Exception {
byte[] data = Files.readAllBytes(Paths.get("C:\\Users\\Dziugas\\Desktop\\Darts.exe"));
File x = new File("C:\\Users\\Dziugas\\Desktop\\file.exe");
if(!x.exists())
x.createNewFile();
BufferedWriter writer = new BufferedWriter(new FileWriter(x, true));
for(byte b: data)
writer.write(b);
writer.close();
}
}
Ukuran salinannya sama dengan aslinya. Ini membuat saya bertanya-tanya tentang API I/O Java.. Saya pikir membaca semua byte maksudnya persis seperti itu?
Saya mencoba menghapus salinannya dan menjalankan kodenya lagi, tetapi kesalahan terus berlanjut. Adakah ide tentang kesalahan yang saya lakukan?