次の問題についてサポートが必要です。
2つの異なるEclipse製品があり、Linux実行可能ファイルが配置されているのと同じバンドルを使用していますが、ターゲットプラットフォームとは異なるEclipseプラグイン(3.5および3.7)を使用しています。両方とも実行されます:
Java(TM) SE Runtime Environment (build 1.7.0_04-ea-b06)
32ビットDebianシステム上。
どちらのアプリケーションも、バンドルから実行可能ファイルを抽出し、bundle.getEntry()
FileInputStream->FileWriterを介してディレクトリに配置します。
次に、実行可能ファイルが呼び出されます。あるケースでは完全に機能しますが、他のケースでは機能しません。バージョン3.5(作業ケース)の場合、$:file myFile
次のように述べています。
ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, not stripped
バージョン3.7(機能しない場合)の場合、$:file myFile
次のように述べています。
ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), corrupted program header size, corrupted section header size
彼らは同じOS、JRE、バンドルを使用していますが、ELF-メタデータを破壊しているのは何ですか?私は他に見るべき場所を知りません。Javaの問題ですか?Eclipse?図書館?
ここにコピー方法があります:
URL url = bundle.getBundle(path);
inputStream = url.openStream();
FileWriter fileWriter = new FileWriter(path);
int in;
while ((in = inputStream.read()) != -1)
fileWriter.write(in);
inputStream.close();
fileWriter.close();
new File(path).setExecutable(true, false);