【问题标题】:Executable won't work after extracted from jar从jar中提取后可执行文件将不起作用
【发布时间】:2014-11-25 18:31:44
【问题描述】:

我有一个 java 程序,我通过用 C++ 编写部分代码对其进行了一些优化。我将 C++ 可执行文件包含在自包含的可运行 jar 中。当程序运行并且我需要使用这个可执行文件时,我将它解压到当前文件夹并运行它。

我发现的问题是,当我提取文件时,它似乎不再被视为可执行文件。该文件在压缩到 jar 之前工作得非常好,但解压后我无法在 shell 中运行它。我还尝试使用 java "jar xf" 命令提取文件并查看我的代码是否存在错误,但我仍然发现相同的问题。

我当前的 java 版本是 1.7.0.51,我正在让程序在目前卡在这个 java 版本上的计算机上运行。

【问题讨论】:

  • 您是否以管理员权限运行 jar?
  • 解压后的exe还有执行权限吗?
  • 那是问题所在,我给了错误文件的执行权限。
  • 在打包之前和解压之后,您是否计算过文件的某些代码(md5 或 sha1)?

标签: java c++ linux jar


【解决方案1】:

当您解压*.jar 文件时,请在继续之前检查权限。 如果您有可执行权限,如果您没有可执行权限,则更改它们。

chmod +X <executable>

如果这不起作用,请检查 C++ 可执行文件的文件格式。

file <executable>

【讨论】:

    猜你喜欢
    • 2015-01-13
    • 1970-01-01
    • 1970-01-01
    • 2012-08-08
    • 1970-01-01
    • 2015-06-28
    • 1970-01-01
    • 2018-09-25
    • 2015-06-01
    相关资源
    最近更新 更多