【发布时间】:2011-11-06 21:05:23
【问题描述】:
我在部署带有 SWT 组件的应用程序时遇到问题。
我阅读了SO link 并将 SWT 与 swing 合并到我的代码中。
当我在 Eclipse 3.7.1 Indigo 中运行它时(Ctrl+F11 或 Alt + Shift X ,J)。
它在 Eclipse 中完美运行。
但是,当我将文件导出为“可运行 JAR”时:
应用程序本身运行良好,但 SWT 文件选择器不能。
当我将文件导出为 JAR 时,即根据以下内容添加清单:wiki eclipse link + SO link + SO link + SO link 并且我收到故障排除部分(eclipse wiki)中列出的错误。 我检查了那里列出的所有解决方案,但它们对我不起作用。
问题:
- 为什么 SWT 文件选择器在 Eclipse 中工作,而不是在“可运行 罐子”?
- 为什么eclipse中的“runnable jar”导出向导,不是 自动合并 SWT?
- 为什么当
swt.jar被正确命名并且在运行时文件夹中并且主类正确时,导出为jar不能与清单一起使用,但它仍然给出错误?:Could not find the main class. Program will exit.
我假设最简单的解决方案是使用 Swing 文件选择器。但我想知道如何让 SWT 应用程序在 eclipse 之外运行。
问候
更新: 结果表明,所有.jar 文件(在库构建路径中)都需要添加到清单中。我只是添加了swt.jar,这就是我收到Could not find main class... 错误的原因。将另一个 .jar 添加到清单中解决了上面的 Q3。
从命令行运行时:SWT 组件在导出 jar + 可运行 jar 时工作正常。
但是,当尝试通过双击运行可运行 jar 时,SWT 组件不起作用。 Q1 和 Q2 仍未解决(双击时 SWT 文件选择器不起作用,但在 cmd java -jar... 中起作用)。
【问题讨论】:
-
所需的库在哪里?你的
java.library.path是什么? -
在我的构建路径(库)中,我有一个 swt.jar(我使用 Add External Jars 添加了它)。我还有一个 JRE 系统库 [jre6]。
-
谢谢,进一步检查构建路径库有助于解决 Q3。类路径已修复 (blogs.oracle.com/olaf/entry/jdev_including_a_classpath_in) 问题已更新。