.jar から .class ファイルを抽出しようとしましたが、うまくいきましたが、何かを変更したところ、次のエラーが発生しました。
java.lang.ClassFormatError: Invalid constant pool index 63
これが私のコードです:
String path = new File(getClass().getProtectionDomain().getCodeSource().getLocation().getFile()).getAbsolutePath();
if (path.endsWith("."))
path = path.substring(0, path.length() - 1);
String decodedPath = URLDecoder.decode(path, "UTF-8");
File file = new File(decodedPath + (decodedPath.endsWith("\\") ? "Classfile.class" : "\\Classfile.class"));
InputStreamReader read = new InputStreamReader(FileSync.class.getResourceAsStream("/Classfile.class"));
FileWriter write = new FileWriter(file);
int c;
while ((i = read.read()) > -1) {
write.write(i);
}
write.flush();
read.close();
write.close();
ProcessBuilder builder = new ProcessBuilder(System.getProperty("java.home") + "\\bin\\java.exe", "Classfile", decodedPath + (decodedPath.endsWith("\\") ? "Program.jar" : "\\Program.jar"));
builder.directory(file.getParentFile());
Process process = builder.start();
誰でも助けることができますか?