当前位置: 首页 > 知识库问答 >
问题:

导出带有VM参数的jar

贺聪
2023-03-14

我已经用Eclipse编写了一个Java应用程序,该应用程序使用SWT作为UI。(请参阅运行jar:异常时的SWT异常线程"main"org.eclipse.swt.SWT异常:无效线程访问的详细信息)。

我导出为JAR,但很难让它从Finder和Terend运行。我终于用java-XstarOnFirstThread-jar通用enom.jar让它从终端运行

然而,当我从eclipse导出为JAR时,我仍然无法让它运行。这是因为它导出时需要与它捆绑在一起的参数。然后我注意到在属性中

因此,我将参数手动添加到同一选项卡中的VM Arguments框中。当我作为runnable JAR导出时,我注意到一条警告:“VM参数将不属于runnable JAR。启动JAR时,可以在命令行上传递参数。”。

最终,我需要一种方法让它从finder启动(无论是JAR还是其他方式),而不必打开终端并手动启动它。是的,我可以写一个Shell脚本来启动它,但是我觉得一定有更简单的方法。


共有1个答案

吕鹏
2023-03-14

您有两个选项。简单的方法是创建一个外壳脚本:

#!/bin/bash
java -XstartOnFirstThread -jar CommonDenom.jar

用户运行脚本,该脚本设置参数并运行Java。

另一种方法是创建应用程序包。它包括一个属性文件(Info.plist),您可以在其中设置这些属性。您还可以使用Oracle的appbundler工具创建应用程序捆绑包。

 类似资料:
  • 我试图通过eclipse导出一个java程序,但我有一些问题: 我希望能够通过命令行运行它并将参数传递给它,特别是属性文件的位置。 我尝试将其导出为可运行的jar文件,使用main作为启动配置,并使用另一个运行配置,其中参数在运行时传递。 基本上我想传递属性文件ie但我一直收到以下错误: 有趣的是,如果我使用变量而不是,在那里我不需要传递参数,我会得到同样的错误。 在eclipse中,我可以将文件

  • 问题内容: 此选项在docker文件中有什么作用? 如果没有此参数,docker容器会启动吗?我检查了一篇文章说 启用内存支持 但我仍然不清楚。 问题答案: 是。容器将以开头。 用于分配更大部分的内存。 为了防止JVM在容器中运行时调整最大堆大小,请设置 。 除此之外,https://www.eclipse.org/openj9/docs/xxusecontainersupport/可能会有所帮助

  • 对于我的一些项目,我在GUI中使用JavaFX,在JavaFX被拆分为OpenJFX之前,我没有遇到任何问题。现在我想使用JDK和JavaFX的最新版本,因此必须进行一些更改。 在Eclipse中工作时,一切都在正常运行,我添加了JavaFX作为库,但是当我试图使用Launch4J从可运行的jar创建exe文件时,我遇到了一些问题。在Eclipse中,我使用了2个VM参数: null null n

  • 我整合了Swashbuckle。OData 3.2.0和Swashbuckle。我的WepAPI OData webservice中的Core 5.5.3来生成Swagger documentaion。当我试图访问swaggerendpoint(http://localhost:52460/swagger)时,我得到了下面的异常,这似乎是由一个函数(AppointmentsForUsers)引起的

  • 问题内容: 是否可以通过以参数作为参数的javascript函数? 例: 问题答案: 使用“关闭”: 这将创建一个匿名的临时函数包装器,该包装器知道该参数并将其传递给实际的回调实现。

  • 问题内容: 我正在阅读Wikipedia上的Singleton文章,并且遇到了以下示例: 虽然我真的很喜欢Singleton的行为方式,但是我看不到如何修改它以将参数合并到构造函数中。用Java进行此操作的首选方法是什么?我需要做这样的事情吗? 谢谢! 编辑:我想我对使用Singleton的渴望已经引发了一场争论的风暴。让我解释一下我的动机,并希望有人可以提出一个更好的主意。我正在使用网格计算框架