NutzCN Logo
问答 nutz native 怎么做?
发布于 506天前 作者 wendal 1265 次浏览 复制 上一个帖子 下一个帖子
标签:

最近有人提及spring native出来了呀, nutz要不要跟.

然后呢, 最近也在升级nutz依赖的jdk版本, 所以顺便也测试了一番.

默认是nutzboot编译成本地文件了吧? 以最新的graalvm为例.

首先, 把nutzboot项目编译打包成可执行的jar

mvn clean package nutzboot:shade

然后, 下载graalvm, https://github.com/graalvm/graalvm-ce-builds/releases/tag/vm-21.1.0 建议选jdk11的版本. 解压后执行

xxx/bin/gu install native-image
// 其中xxx是graalvm解压后的路径, 如果已经加入PATH, 那就直接敲gu完事

自动安装完成后, 就可以生成nutz native呗

xxx/bin/native-image -jar netlab-1.0.0-SNAPSHOT.jar

如无意外, 就会生成 netlab-1.0.0-SNAPSHOT.exe 或者 linux下的 netlab-1.0.0-SNAPSHOT, 可直接执行.

如有问题, 欢迎回帖或者给nutz/nutzboot报issue, 期待您的反馈

9 回复

可以防止反编译么?

据说会生成本地代码, 没法简单反编译

我是用这个命令生成的
native-image --allow-incomplete-classpath -jar my.jar

执行的时候报错
```js
17:02:18.585 [Thread-0] ERROR org.nutz.boot.NbApp - something happen
java.lang.NullPointerException: null
at org.nutz.boot.NbApp.execute(NbApp.java:224)
at org.nutz.boot.NbApp.run(NbApp.java:182)
at com.oracle.svm.core.thread.JavaThreads.threadStartRoutine(JavaThreads.java:596)
at com.oracle.svm.core.posix.thread.PosixJavaThreads.pthreadStartRoutine(PosixJavaThreads.java:192)

```

是不是没执行 nutzboot:shade

mvn clean package nutzboot:shade -Dmaven.test.skip=true
是这样打包的,不知道为啥不行,后来放弃了。

--allow-incomplete-classpath 加了这个参数 是可以打成二进程的包

但是运行报错:

root@vm004:~# ./wk-gateway
22-04-12 17:01:10.291 INFO [main] Select SystemLog as Nutz.Log implement
22-04-12 17:01:10.294 ERROR [main] something happen
java.lang.NullPointerException
        at org.nutz.boot.NbApp.execute(NbApp.java:224)
        at org.nutz.boot.NbApp.run(NbApp.java:182)
        at com.osdiot.app.gateway.WkGatewayLauncher.main(WkGatewayLauncher.java:23)

缺配置文件的样子, js/json读不到?

添加回复
请先登陆
回到顶部