-
Notifications
You must be signed in to change notification settings - Fork 15
Open
Description
复现步骤
1. 通过 mvn package 把 demo3038-auth_captcha 项目打包 jar 包,并重命名为 demo.jar
2. 在 Rocky Linux 9 上运行 jar 包,并通过 agentlib 收集信息
2.1. 我的 Java 版本:
java --version 130 ↵
java 21.0.4 2024-07-16 LTS
Java(TM) SE Runtime Environment Oracle GraalVM 21.0.4+8.1 (build 21.0.4+8-LTS-jvmci-23.1-b41)
Java HotSpot(TM) 64-Bit Server VM Oracle GraalVM 21.0.4+8.1 (build 21.0.4+8-LTS-jvmci-23.1-b41, mixed mode, sharing)2.2. 执行 jar 命令并收集信息:
java -agentlib:native-image-agent=config-merge-dir=/home/camio/demo-config/,config-write-period-secs=5,config-write-initial-delay-secs=1 -jar demo.jar2.3. 访问浏览器,试用各种验证码,成功收集到了 GraalVM 需要的相关信息:
╰─➤ ll /home/camio/demo-config
total 52K
drwxr-xr-x 2 camio camio 6 Aug 18 16:03 agent-extracted-predefined-classes
drwx------ 2 camio camio 180 Aug 18 16:04 agent-pid36461-20240818T080457Z.tmp14407388045284041076
-rw-r--r-- 1 camio camio 702 Aug 18 16:04 jni-config.json
-rw-r--r-- 1 camio camio 65 Aug 18 16:04 predefined-classes-config.json
-rw-r--r-- 1 camio camio 4 Aug 18 16:04 proxy-config.json
-rw-r--r-- 1 camio camio 28K Aug 18 16:04 reflect-config.json
-rw-r--r-- 1 camio camio 4.9K Aug 18 16:04 resource-config.json
-rw-r--r-- 1 camio camio 71 Aug 18 16:04 serialization-config.json
3. 把 jar 包编译成二进制包
native-image --enable-url-protocols=http,https -H:ConfigurationFileDirectories=/home/camio/demo-config -jar demo.jar demo
4. 运行二进制包,报错
报错信息:
╰─➤ /home/camio/demo
Exception in thread "main" java.lang.IllegalStateException: java.util.zip.ZipException: zip END header not found
at org.noear.solon.loader.ExecutableArchiveLauncher.<init>(ExecutableArchiveLauncher.java:57)
at org.noear.solon.loader.JarLauncher.<init>(JarLauncher.java:42)
at org.noear.solon.loader.JarLauncher.main(JarLauncher.java:65)
at [email protected]/java.lang.invoke.LambdaForm$DMH/sa346b79c.invokeStaticInit(LambdaForm$DMH)
Caused by: java.util.zip.ZipException: zip END header not found
at [email protected]/java.util.zip.ZipFile$Source.findEND(ZipFile.java:1649)
at [email protected]/java.util.zip.ZipFile$Source.initCEN(ZipFile.java:1657)
at [email protected]/java.util.zip.ZipFile$Source.<init>(ZipFile.java:1495)
at [email protected]/java.util.zip.ZipFile$Source.get(ZipFile.java:1458)
at [email protected]/java.util.zip.ZipFile$CleanableResource.<init>(ZipFile.java:724)
at [email protected]/java.util.zip.ZipFile.<init>(ZipFile.java:251)
at [email protected]/java.util.zip.ZipFile.<init>(ZipFile.java:180)
at [email protected]/java.util.jar.JarFile.<init>(JarFile.java:345)
at [email protected]/java.util.jar.JarFile.<init>(JarFile.java:316)
at [email protected]/java.util.jar.JarFile.<init>(JarFile.java:282)
at org.noear.solon.loader.jar.AbstractJarFile.<init>(AbstractJarFile.java:39)
at org.noear.solon.loader.jar.JarFile.<init>(JarFile.java:136)
at org.noear.solon.loader.jar.JarFile.<init>(JarFile.java:131)
at org.noear.solon.loader.jar.JarFile.<init>(JarFile.java:116)
at org.noear.solon.loader.jar.JarFile.<init>(JarFile.java:106)
at org.noear.solon.loader.archive.JarFileArchive.<init>(JarFileArchive.java:69)
at org.noear.solon.loader.archive.JarFileArchive.<init>(JarFileArchive.java:65)
at org.noear.solon.loader.Launcher.createArchive(Launcher.java:136)
at org.noear.solon.loader.ExecutableArchiveLauncher.<init>(ExecutableArchiveLauncher.java:53)
... 3 more
5. 求助:能否帮忙针对 demo3038-auth_captcha 这个例子给出一个可以通过 GraalVM native image 在 Linux 上成功打包并运行的方案?
Metadata
Metadata
Assignees
Labels
No labels