我可以将 Java 编译成共享库(.so)并通过 Java 中的 System.load() 函数加载它吗?

Can I compile Java into shared library(.so) and load it by System.load() function in Java?

我可以将java编译成共享库(.so)并通过Java中的System.load()函数加载吗?我之所以要这样做,是因为我不希望其他人可以反转我的 java 代码。我想对一些 java 代码保密。

如有任何建议,我们将不胜感激!如果可行,能给个例子吗?非常感谢!

使 Java 代码可执行但不可能进行逆向工程并非易事,我不建议采用这种技术解决方案。

您通常有两个选择:

  • 强制执行许可证中的 "You must not reverse engineer my code"。换句话说,使其成为政治而非技术解决方案。这通常最适合付费客户。

  • 在别处拥有您需要保密的代码。执行此操作的典型方法是让您的程序通过您控制的服务器上的 Web 服务调用密码。

对于 Java,Jersey JAX-RS 实现非常适合我们。