我需要使用perl脚本从少数.so文件创建.jar文件
答案 0 :(得分:2)
这通常不可能。
.so
(共享对象)是一个可以动态加载的库,就像Windows系统上的.dll
一样。这些库包含本机编译的代码,可能依赖于其他库。 .jar
是Java虚拟机(JVM)的归档文件。它也可以动态加载,但它包含.class
个文件,其中包含为JVM编译的代码。
你可以将机器代码中的程序转换为JVM字节代码(或者编写一个模拟器,例如x86架构),这很麻烦,但是过分很难做到,因为CPU和JVM的执行模型实质上不同,例如在他们的记忆治疗。结果可能非常低效。并且重新编译动态加载的库将是相当不可移植的,从而破坏了JVM的目的。
如果您只想与JVM中的本机库(例如用Java编写的程序)进行交互,那么您可以使用Java Native Interface(JNI)代替。在这种情况下,您必须围绕.so
编写C或C ++包装器,然后才能调用这些函数。
我不知道你为什么提到Perl。虽然语言很好,但在这里却无济于事。