【问题标题】:Running Windows-Compatible .jar files on Linux?在 Linux 上运行与 Windows 兼容的 .jar 文件?
【发布时间】:2019-01-07 16:06:55
【问题描述】:

我们的 CE 项目包含一个 .jar 文件,该文件出于某种原因仅为 Windows 编写。不幸的是,我在 Ubuntu 上完成了所有与编码相关的项目,我真的不愿意在 windows 上安装 VS 并在新环境中重新开始并失去很多效率。

jar 文件需要一些其他文件才能工作,但 Linux 中的目录格式不同,所以当我尝试从 Linux 打开它时,我收到了找不到文件的错误。 我已经要求提供源代码或更兼容的版本,但就我而言,TA 并不真正合作。

有什么办法可以规避这个问题并修复不兼容的目录格式问题(例如通过 wine 运行)?

编辑:我尝试对 jar 进行反编译,但并不完全成功,并且某些文件已损坏。

【问题讨论】:

  • 所以基本上你唯一的问题是你的应用程序正在查找一些不存在的文件?
  • 如果只是几个硬编码的路径名,并且应用程序不是太大,你也许可以反编译它(this site有一个反编译器列表),修复路径,然后重新-编译。
  • 文件存在,并且应用程序确实可以在 Windows 上运行,但不能在 Linux 上运行,
  • 如果jar中没有所有文件,那么创建它有什么用?
  • 如果 Jar 用于家庭作业(从“TA”推断),那么可能你可以做的不多。他们可能不愿意给你源代码,并且在 Linux 上重新工作的能力有限。此外,如果您使用 Jar 的反编译和修补版本,当他们针对 他们的原始 Jar 测试代码时,您可能会冒代码无法工作的风险。这可能不是您想听到的答案,但最好只使用 Windows 来完成这项任务,并开始请愿以在未来进行与操作系统无关的任务。

标签: java


【解决方案1】:

因为最初的维护者并不认为这个 JAR 会在其他操作系统上运行,所以您只能满足他们的任意要求。您将要使用 VM(Wine 不是模拟器,使用它和 Java 运行 JAR 会遇到重大痛苦)来设置它并执行它们的罐子。

获得源代码后,您可以build a new JAR which asks the OS which file separator to use 而不是让代码假设 Windows。或使用NIO

【讨论】:

  • 我已经在双启动中安装了 Windows,但是我需要一些时间来适应它,因为我从未在其中做过任何“编码”相关的东西。我想也许有更简单的方法,但似乎没有。谢谢你的回答
猜你喜欢
  • 1970-01-01
  • 2013-03-17
  • 2020-04-02
  • 1970-01-01
  • 2010-09-28
  • 2015-03-10
  • 2016-08-17
  • 2017-12-27
  • 1970-01-01
相关资源
最近更新 更多