企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
走到这里,你已经拥有了运行该Java程序的两个核心组成部分了: 用于调用原生方法的类文件HelloWorld.class 以及 包含原生代码实现的动态链接库 HelloWorld.dll/so. Hello World类一经包含了Java程序的main入口函数,你可以直接执行以下命令运行Hello World程序. `java HelloWorld` 如果不出意外,你应当得到以下输出: `Hello World!` 如果你动态链接库地址设置的不对,则会报如下错: ~~~ Exception in thread "main" java.lang.UnsatisfiedLinkError: no HelloWorld in java.library.path at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1857) at java.lang.Runtime.loadLibrary0(Runtime.java:870) at java.lang.System.loadLibrary(System.java:1119) at HelloWorld.<clinit>(HelloWorld.java:3) ~~~ 如果你的原生函数签名写错,则会报如下错,请务必小心: ~~~ Exception in thread "main" java.lang.UnsatisfiedLinkError: HelloWorld.print()V at HelloWorld.print(Native Method) at HelloWorld.main(HelloWorld.java:7) ~~~ 正确的设置动态链接库的路径对于程序成功运行只管重要,在加载时候需要将动态链接库所对应的目录加入系统LD_LIBRARY_PATH环境变量,或者在执行java命令的时候加入java.library.path选项,制定库所在目录. `java -Djava.library.path=. HelloWorld`