您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

在Mac上正确运行基于SWT的跨平台jar

在Mac上正确运行基于SWT的跨平台jar

是的,您绝对需要-XstartOnFirstThread在Mac OSX上使它正常工作。由于它是VM参数,因此只能在启动应用程序时指定它,因此如果无法使用Mac OS X,则从代码中检测并设置OS。在Eclipse的现场解决方案创建了一个合适的MacOS X 我Application.app ,这是特定于平台的,并再次,不要在你的情况下是可行的。

但是,我只是尝试使用-XstartOnFirstThread指定的参数在Windows XP上运行Eclipse RCP应用程序,而它一点也不抱怨。这意味着您可以在JNLP文件中指定此参数,并且大概在所有其他平台上都将忽略该参数,并在Mac OS X上将其提取

如果由于某种原因-XstartOnFirstThread在任何平台上引起麻烦,或者您只想 做正确的事 ,那么还有另一种可能的解决方案。您可以在浏览器中检测到用户的OS(假设该应用程序是从网页启动的),然后为Mac OS X和其他平台提供不同的JNLP。

评论中所指出,有一个有关使用Java Web Start部署SWT应用程序教程。我只是在Mac OS X(10.6.x)上启动了JNLP,并且可以正常工作。查看示例JNPL,我发现了以下内容

<?xml version="1.0" encoding="utf-8"?>
<jnlp spec="1.0+"
    codebase="http://www.eclipse.org/swt/jws/"
    href="controlexample.jnlp">
<information>
      <title>Control Example</title>
      <vendor>eclipse.org</vendor>
      <homepage href="http://www.eclipse.org/swt/jws/" />
      <description>A demonstration of SWT Widgets</description>
      <description>Control Example</description>
</information>

<security>
    <all-permissions />
</security>

<resources>
    <extension href="swt.jnlp"/>
    <jar href="controlexample.jar" />
</resources>

<application-desc main-class="org.eclipse.swt.examples.controlexample.ControlExample" />
</jnlp>

请注意最后<extension href="swt.jnlp"/>一行,指向特定平台的SWT JNLP文件(此处省略了某些部分):

<?xml version="1.0" encoding="utf-8"?>
<jnlp spec="1.0+"
    codebase="http://www.eclipse.org/swt/jws/"
    href="swt.jnlp">
<information>
      <title>SWT</title>
      <vendor>eclipse.org</vendor>
      <homepage href="http://www.eclipse.org/swt/jws/" />
      <description>SWT</description>
</information>

<security>
    <all-permissions />
</security>

<resources os="Windows" arch="x86">
    <j2se version="1.4+" />
    <jar href="swt-win32-windows-x86.jar" />
</resources>

...

<resources os="Mac\ OS\ X">
    <j2se version="1.5*" java-vm-args="-XstartOnFirstThread"/>
    <jar href="swt-carbon-osx-universal.jar" />
</resources>

<component-desc/>
</jnlp>

文件末尾的位置:Mac OS X特定-XstartOnFirstThread参数。

其他 2022/1/1 18:16:08 有430人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶