RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 626057
Accepted
helloworld
helloworld
Asked:2020-02-10 16:33:54 +0000 UTC2020-02-10 16:33:54 +0000 UTC 2020-02-10 16:33:54 +0000 UTC

Java 可执行文件

  • 772

问题是,如果你创建一个.jar 或.exe 可执行文件,它会在没有JVM 且没有安装JDK 和JRE 的计算机上运行吗?

jvm
  • 3 3 个回答
  • 10 Views

3 个回答

  • Voted
  1. Barmaley
    2020-02-10T18:14:03Z2020-02-10T18:14:03Z

    不,它不会工作。

    你想好了吗?

    有打包程序将 JRE / JVM 版本打包到生成的 EXE 中,jar 将在其中启动。

    例如ExcelsiorJET - 然而,它是商业的,但如果你搜索,我认为有免费的。

    • 4
  2. Best Answer
    Mikhail Grebenev
    2020-02-10T21:25:07Z2020-02-10T21:25:07Z

    因为 jar,原则上是离不开JVM的(因为jar是一组字节码形式的类,而不是可执行二进制文件形式的类),那么我们将你的问题表述为:如何打包你的.jar项目到一个 .exe 文件和 JVM 中。这样你的项目就可以在不预装JVM的情况下启动和运行?

    在 stackoverflow 上描述了一个关于交叉launch4j和JVM(即)的成功实验。JRE

    我分享了一个链接:how to pack your JAR project and JRE into one EXE file via launch4j。

    我从链接翻译答案:

    1.将您的应用程序和 JRE 打包到一个 ZIP 压缩包中,目录结构为:

    containerFolder
    |- jre
          |-bin (здесь лежит java.exe из состава JRE)
          |-lib
    |- cfg (папка для сохранения user-конфигурации, если нужно)
    |- bin (Ваше приложение с .exe и вашим jar-файлом и другими Вашими внешними файлами из проекта)
    

    2.在launch4j的xml文件中,按以下方式配置JRE:

    <jre>
        <path>../jre</path>
        <opt>-DgvSIG.confDir=../cfg</opt>
    </jre>
    

    诀窍是没有指定 java.exe 文件的路径。java.exe 的路径是相对于.exe 文件的位置。

    在此示例中,作为 JRE,使用标准安装的 JRE 引擎的常规副本(例如:C:\Program Files\Java\jre1.8.0_121)。

    是的,Launch4j是免费的,并且拥有非常民主的BSD 3-Clause License。

    • 3
  3. Riĥard Brugekĥaim
    2020-02-10T16:41:12Z2020-02-10T16:41:12Z

    不,它不会工作。只有一种选择。exe 中的某些打包程序可能会将其链接到本地​​ jvm。也就是说,除了 exe 之外,您还必须携带 jre 文件夹。

    • -2

相关问题

  • 访问祖先类的私有字段

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    Python 3.6 - 安装 MySQL (Windows)

    • 1 个回答
  • Marko Smith

    C++ 编写程序“计算单个岛屿”。填充一个二维数组 12x12 0 和 1

    • 2 个回答
  • Marko Smith

    返回指针的函数

    • 1 个回答
  • Marko Smith

    我使用 django 管理面板添加图像,但它没有显示

    • 1 个回答
  • Marko Smith

    这些条目是什么意思,它们的完整等效项是什么样的

    • 2 个回答
  • Marko Smith

    浏览器仍然缓存文件数据

    • 1 个回答
  • Marko Smith

    在 Excel VBA 中激活工作表的问题

    • 3 个回答
  • Marko Smith

    为什么内置类型中包含复数而小数不包含?

    • 2 个回答
  • Marko Smith

    获得唯一途径

    • 3 个回答
  • Marko Smith

    告诉我一个像幻灯片一样创建滚动的库

    • 1 个回答
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Алексей Шиманский 如何以及通过什么方式来查找 Javascript 代码中的错误? 2020-08-03 00:21:37 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    user207618 Codegolf——组合选择算法的实现 2020-10-23 18:46:29 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5