【问题标题】:Deploying a Java project on Linux system在 Linux 系统上部署 Java 项目
【发布时间】:2011-10-17 13:30:23
【问题描述】:

我使用 Java 开发了一个项目,现在我必须将它交付给使用 Linux 的客户。将交付哪种可执行文件格式以及如何制作?

【问题讨论】:

    标签: java linux deployment


    【解决方案1】:

    可执行文件格式?

    如果您要交付 Java 应用,请给他们一个 jar 文件(和相关的库)。

    提供一个 shell 脚本来设置它的环境并执行它。

    例如,假设我将ROOT_DIR 定义为我的应用程序的安装目录,依此类推:

    CLASSPATH="${ADD_JARS}:${CLASSPATH}:${ROOT_DIR}/lib/myApp.jar:\
    ${ROOT_DIR}/lib/jibx/jibx-run.jar:\
    ${ROOT_DIR}/lib/jibx/xpp3.jar:\
    ${ROOT_DIR}/lib/bindings.jar:\
    ${ROOT_DIR}/lib/commons-lang-2.0.jar:\
    ${ROOT_DIR}/lib/forms-1.0.5.jar"
    "${JAVACMD}" -Xmx256M -DanyDefsNeeded=foobar -Dbase.dir="${ROOT_DIR}" -cp "${CLASSPATH}" myApp.main.Launcher "$@"
    

    shell 脚本中的内容完全取决于您的应用实际需要启动的内容。

    【讨论】:

    • 我真的很想知道如何制作一个shell脚本来设置它的环境并执行它?
    • "java -jar FILENAME.jar" 将运行您的 JAR 文件,前提是它声明了 Main-Class 并且客户端安装了 JVM。根据您的开发环境(例如 NetBeans),前者可能已经为您完成了。
    • @MohammadFaisal 用一个非常简单的例子更新了答案。
    【解决方案2】:

    一个罐子。如果它不可执行,则使用脚本 (.sh) 来启动 jar。

    【讨论】:

    • 我如何创建一个 shell 脚本文件 (.sh) 以及如何执行那个 jar?
    • 您可以使用任何文本编辑器创建 shell 脚本。 java 命令的手动条目解释了如何执行 JAR 文件。
    • 如何创建脚本:在jar目录中输入echo "java -jar myJarFileName.jar" >> launcher.sh,它应该会创建一个名为launcher.sh的文件
    【解决方案3】:

    基本上,您想要放入 .sh 文件的内容就是您通常在控制台中键入以运行 jar 文件的命令。它们应该由一个新行分隔(即每个在 .sh 文件中的单独行上)。

    你可以做的最基本的就是在你的 sh 文件中添加这样的东西:

    java -Xms=64m -Xmx=256m -jar myJar.jar -classpath [dependencies dir]/dep1.jar,[dependencies dir]/dep2.jar
    

    除此之外,您还可以做更多奇特的事情,例如参数化一些环境变量,从 .sh 启动时获取命令行参数并将它们传递给 jar 可执行文件等。查找“bash 脚本”以获取高级内容:

    http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-2.html#ss2.1

    【讨论】:

      【解决方案4】:

      使用Launch4JIzPack 或其他具有跨平台功能的installer 可能会更好。与尝试了解不同 Linux 发行版和 shell 的复杂性和特性相比,这可能是更好的首选。

      【讨论】:

      • 这些Launch4jIzPack 或其他是否也适用于linux
      【解决方案5】:

      如果您的应用程序。有一个 GUI,安装/部署的最佳用户体验可以通过Java Web Start 获得。请注意,JWS 可以部署应用程序。到 Windows、*nix Mac。并避免生成 3 个单独的(特定于平台的)可执行文件所带来的所有维护问题。

      【讨论】:

        猜你喜欢
        • 2020-06-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-05-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多