V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
muhuan
V2EX  ›  Java

springboot 加壳

  •  
  •   muhuan · 2022-01-05 09:18:32 +08:00 · 4468 次点击
    这是一个创建于 1082 天前的主题,其中的信息可能已经有所发展或是发生改变。
    springboot 可以方便的开发 web 应用,有什么办法可以快速的包装一个壳,例如在 mac 下,生成一个图标,点击启动应用,打开一个 webview 的窗口,加载这个地址?

    记得之前好像有个应用可以生成一个打开指定 url 的图标,但是少了一步启动。
    25 条回复    2022-01-20 13:32:52 +08:00
    muhuan
        1
    muhuan  
    OP
       2022-01-05 09:19:48 +08:00
    考虑过 javafx ,也尝试了,打包上不是很方便,同时因为依赖的一些库非模块化,实施起来并不是很方便。
    xianyv
        2
    xianyv  
       2022-01-05 09:22:56 +08:00
    我只知道 vue 可以被打包成一个 windows 桌面应用,就是在外层加了一个壳
    mineralsalt
        3
    mineralsalt  
       2022-01-05 09:28:36 +08:00
    @muhuan javafx 应该是最好用的, 可以把 springboot 整合到一个程序里面, 而且 javafx 也自带了比较好用的浏览器组件
    SuperXRay
        4
    SuperXRay  
       2022-01-05 09:33:24 +08:00
    直接存个 shell 命令
    SuperXRay
        5
    SuperXRay  
       2022-01-05 09:36:59 +08:00
    nohup java -jar 启动 jar 包后,服务开启来可能还要个时间,延迟一点时间后 open ‘http:loacalhost:8080’ 就可以启动网页了
    orangie
        6
    orangie  
       2022-01-05 09:38:26 +08:00
    ……以 springboot 的启动速度,还是不要折磨用户了吧。如果实在想做,写个 shell 脚本就可以启动 jar 再打开浏览器。
    cweijan
        7
    cweijan  
       2022-01-05 09:39:46 +08:00
    那不就是只有 javafx 吗, 不然就只能用 Electron 套壳, 启动时使用 Java 命令启动 jar 包.
    threeEggs123
        8
    threeEggs123  
       2022-01-05 09:40:57 +08:00 via Android
    j2exe
    yuhuigreed
        9
    yuhuigreed  
       2022-01-05 09:46:08 +08:00
    jpackage?
    mitsuizzz
        10
    mitsuizzz  
       2022-01-05 09:53:16 +08:00
    我猜你需要 jframe ?
    VensonEEE
        11
    VensonEEE  
       2022-01-05 10:00:53 +08:00
    electron 调用 shell 启动 springboot ,前端 loading 到接口有数据为止
    gam2046
        12
    gam2046  
       2022-01-05 11:05:53 +08:00
    Java 9 以上包含了 jlink 用于裁剪 JRE 以便于分发,但是由于许多第三方依赖性并非采用模块化设计,因此实际使用时仍有困难。

    所以可以尝试下这款 Gradle 插件: https://github.com/beryx/badass-jlink-plugin

    我自己使用过,虽然并不算很方便,但也只要自己编写一些模块的规则,也可以很方便的编译出 standalone
    weaponc
        13
    weaponc  
       2022-01-05 11:09:41 +08:00
    试试 node 吧
    chihiro2014
        14
    chihiro2014  
       2022-01-05 11:11:39 +08:00
    graalvm
    kingfalse
        15
    kingfalse  
       2022-01-05 19:14:33 +08:00 via Android
    jar2exe ,支持 boot ,mac linux win 三个平台都支持
    kingfalse
        16
    kingfalse  
       2022-01-05 19:15:43 +08:00 via Android
    @kingfalse 补充一下,要打开 URL 最好考虑下自带浏览器,这方面的话 jbrowser 做的很好很完善,
    muhuan
        17
    muhuan  
    OP
       2022-01-05 19:37:01 +08:00
    @gam2046 感谢,我自己也尝试过,打出的包运行不起来;
    muhuan
        18
    muhuan  
    OP
       2022-01-05 19:38:46 +08:00
    @chihiro2014 速度确实很快
    muhuan
        19
    muhuan  
    OP
       2022-01-05 19:39:43 +08:00
    @mineralsalt 模块化问题比较难解决,依赖的很多 lib 都非模块化的
    muhuan
        20
    muhuan  
    OP
       2022-01-05 19:48:32 +08:00
    @SuperXRay 也不是不行,哈哈
    mineralsalt
        21
    mineralsalt  
       2022-01-05 20:31:54 +08:00   ❤️ 1
    @muhuan javafx 可以不使用模块化打包啊
    muhuan
        22
    muhuan  
    OP
       2022-01-05 20:55:28 +08:00
    @mineralsalt 尝试了 https://github.com/beryx/badass-jlink-plugin ,没有成功,打出的包跑不起来
    gam2046
        23
    gam2046  
       2022-01-06 10:08:37 +08:00
    @muhuan 这个你需要补一下关于模块的基本概念,通常来说出问题的部分大多用了 SPI ,自己多跑几次,加上相关的 uses/provides/requires 就可以了,并不会很麻烦。
    muhuan
        24
    muhuan  
    OP
       2022-01-06 23:04:49 +08:00
    @mineralsalt 可以了,之前没有按照他的例子走,直接按照文档配置,走弯路了
    seanzxx
        25
    seanzxx  
       2022-01-20 13:32:52 +08:00
    可以试试 java 17 自带的 jpackage 呀,
    https://openjdk.java.net/jeps/392

    可以打包成 msi ,exe ,dmg ,pkg 等,跨平台支持
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   839 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 21:05 · PVG 05:05 · LAX 13:05 · JFK 16:05
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.