【问题标题】:generated jar file problem switching Windows/Linux OS生成jar文件问题切换Windows/Linux OS
【发布时间】:2011-09-02 17:05:25
【问题描述】:

我遇到了一个奇怪的情况,我自己也在苦苦挣扎,试图弄清楚问题出在哪里。

我在 Eclipse 下使用 Swing 和 jdbc 开发了一个 Java 应用程序。 我导出了一个在 Windows 下使用 Eclipse 创建的可执行 jar 文件。

当我在 Linux 下执行导出的文件时,一切正常(包括 gui 和数据库访问),除了有时显示的 JDialogs 在 Linux 中不再显示。 如果我再次生成 jar,在 Linux 下(不修改源代码中的任何内容)JDialogs 将再次开始工作。

这是什么原因? 似乎问题与我的源代码无关,所以我是否总是要为每个不同的操作系统再次生成一个可执行 jar? 再说一次,如果是和jar构建过程有关的问题,为什么唯一的问题是JDialogs呢?

我希望清楚

提前感谢大家

【问题讨论】:

  • 你在 Linux 上使用什么样的 JDK?我在 Windows 和 Ubuntu 上都使用 sun-jdk,因为我在使用 Ubuntu 附带的 open-jdk 时遇到了一些问题。
  • @zeropage: 我在 windows 和 linux 上都使用 sun-jdk-6
  • 只是为了检查,看看eclipse是否真的使用sun-jdk而不是另一个。
  • 尝试强制不同的外观设置,看看是否是 Swing->GTK 问题。 download.oracle.com/javase/tutorial/uiswing/lookandfeel/…

标签: java windows linux eclipse jar


【解决方案1】:

当然,您不必在每个平台上构建。这个想法是做一次,到处跑。您是否在 Windows 和 Linux 机器上使用相同版本的 JDK/JRE?其他工具的版本,例如Eclipse,蚂蚁?

【讨论】:

  • 是的,我使用的是相同的 jdk/jre 版本。我目前没有使用 Ant。
  • 我假设您在 Windows 和 Linux Eclipse 构建之间使用完全相同的项目设置和文件。要消除其他可能的差异,请尝试在 Eclipse 中的“Java Compiler”项目属性下使用“启用项目特定设置”。
  • 请注意,Eclipse 中使用的增量编译器与 javac 编译器之间存在细微差别。通过禁用“自动构建”,然后执行“清理”和“构建项目”来尝试完全重建可能会有所帮助。
【解决方案2】:

java swing 中有一些组件存在错误,可能不是平台无关的。

也许 JDialog 就是其中一个错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-04
    • 1970-01-01
    • 2018-03-20
    • 1970-01-01
    • 1970-01-01
    • 2023-03-13
    相关资源
    最近更新 更多