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

springboot 加壳

  •  
  •   muhuan 2022-01-05 09:18:32 +08:00 4908 次点击
    这是一个创建于 1380 天前的主题,其中的信息可能已经有所发展或是发生改变。
    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     Solana     2734 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 32ms UTC 14:52 PVG 22:52 LAX 07:52 JFK 10:52
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86