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

如何使用jar文件制作linux安装程序?

锺宜
2023-03-14

问题

>

  • 如果javajdk没有安装在linux操作系统上,jar将不会运行。

    如果在linux中运行JavaFXJAR,就会出现如下错误

    错误:无法找到或加载主类应用程序。主要原因:java.lang.NoClassDefFoundError: javafx/Application/Application

    后来,我做了这个。成功了。

    要使用终端运行java-fx应用程序,请遵循以下步骤:

    安装openjfx(如果尚未安装):
    sudo apt安装openjfx

    列出javafx库位置:
    dpkg query-L openjfx
    输出如下:

    ./usr/usr/share/usr/share/doc/usr/share/doc/openjfx/usr/share/doc/openjfx/TODO。Debian/usr/share/doc/openjfx/changelog。德比安。gz/usr/share/doc/openjfx/copyright/usr/share/openjfx/usr/share/openjfx/lib/usr/share/openjfx/lib/javafx。properties/usr/share/openjfx/lib/javafx。基础jar/usr/share/openjfx/lib/javafx。控制。jar/usr/share/openjfx/lib/javafx。fxml。jar/usr/share/openjfx/lib/javafx。图样jar/usr/share/openjfx/lib/javafx。媒体jar/usr/share/openjfx/lib/javafx。摆动jar/usr/share/openjfx/lib/javafx。网状物罐子

    通过包含javafx路径和模块来运行jar应用程序:
    java——模块路径$path\u到\u OPENJFX-LIB——添加模块模块1、模块2、模块3,。。。,模块\u n-jar$PATH\u到\u jar\u文件

    java --module-path /usr/share/openjfx/lib --add-modules=javafx.controls,javafx.fxml,javafx.base,javafx.media,javafx.web,javafx.swing -jar '/home/lotfi/Documents/MyAppfolder/my_application.jar'
    

    我想为java制作一个没有上述问题的安装程序。

    即使用户没有在Linux操作系统上安装java jdk,它也应该可以工作。

    除此之外,我想在linux操作系统中添加搜索选项中的应用程序。

    我如何制作这样的应用程序?

    帮助

  • 共有2个答案

    石正卿
    2023-03-14

    java有几个工具可以实现这一点。jlink允许您用java文件打包jre。有一个专门用于完成此任务的maven插件。

    如果你已经有一个工作的maven/javafx设置,那么你所需要做的就是将插件添加到你的pom.xml

    <plugin>
        <groupId>org.openjfx</groupId>
        <artifactId>javafx-maven-plugin</artifactId>
           <version>0.0.4</version>
           <configuration>
           <mainClass>modulename/com.example.Main</mainClass>
           <launcher>nametolaunch</launcher>
        </configuration>
    </plugin>
    

    然后,当您构建项目时。

    mvn javafx:jlink
    

    它将编译您的项目,并创建jlink。在target文件夹内,您将拥有一个文件夹image,其中包含您需要的所有内容。您可以将其压缩并在任何兼容平台上使用。

    运行应用程序Image/bin/nametolarunch

    冯阳华
    2023-03-14

    您可以在jar的开头嵌入一个shell脚本,在这里您将放入1)、2)和3)中的所有逻辑,然后启动jvm。

    #!/bin/sh
    ....
    java -jar "$0"
    exit
    %zip content begins here%
    

    并以$的形式启动它/你的jar

    你可以使用makesel-maven-plugin。

    另外,springbootmaven插件也有这个特性,它与embeddedLaunchScripthttps://docs.spring.io/spring-boot/docs/current/reference/html/deployment.html

     类似资料:
    • 问题内容: 某些软件(例如NetBeans IDE )将Linux安装程序随附在.sh文件中。我很好奇他们如何将整个IDE打包为“ shell脚本”,我在编辑器中打开了文件。我看到了一些纯文本shell脚本代码,然后看到了一些乱码,我认为是“二进制”或非普通文本。 我想知道他们如何混合普通的shell脚本,然后可能将它们称为“不可读的”东西,即二进制文件。 有什么见解吗? 问题答案: 基本上,这是

    • 我想首先将现有文件“我的程序旧”重命名为“我的程序v2”,但前提是“我的程序v2”还不存在。 然后我想将“我的程序”重命名为“我的程序旧”,但前提是“我的程序旧”不存在。 然后我想从安装程序安装‘我的程序',但前提是’我的程序‘还不存在。 我将非常感谢任何指导!

    • 我已经编写了一个Java应用程序,并且我已经创建了一个可执行的Jar文件,该文件使用成功运行我的应用程序。我有一个名为的可执行外壳脚本,它包装了这个Jar的启动(并提供了各种标志,如--help等)。我的目标输出目录如下所示: 我为仅Unix应用程序编写安装程序的标准方法是什么?我假设我将launchMyProgram可执行文件放在/usr/local/bin中是正确的。但是我应该把Jar文件放在

    • 问题内容: 我一直在谷歌搜索几天,试图弄清楚如何做到这一点,如果有人在我非常感谢您帮助之前已经做到了这一点。 我有一个在IntelliJ中创建的自动化测试项目,该项目可以使用户与Web应用程序进行交互的过程自动化。 我想将自动测试(使用Selenium和TestNG在Java中创建)放入可执行的jar文件中,其他人可以通过双击jar文件来运行它。 每当我尝试通过导航到Project Structu

    • 问题内容: 我购买了一个第三方Java库,其中包括一个JAR文件和两个DLL文件。我编写了自己的Java程序,该程序调用了第三方JAR文件。现在我的问题是如何将我的所有代码打包到一个包含所有代码以及第三方JAR和DLL的JAR文件中? 我知道SWT就是这种情况。在包括DLL文件,但我不知道如何做到这一点,以及如何使其正常工作。 问题答案: 只需将其包装在jar中的任何位置即可。不过,你必须记住一件