我需要帮助解决以下问题:
我有两个不同的 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
他们使用相同的操作系统、JRE 和 Bundle,但是是什么破坏了我的 ELF 元数据?我不知道还有什么地方可以看。是Java问题吗?蚀?图书馆?
这里的复制方法:
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);