2013-06-02 104 views
4

我试图找到一种方法将dll转换为jar文件。我有一个与java应用程序通信的.net应用程序。核心实体是.net对象,我必须在java中手动复制。 我已阅读过有关IKVM的消息,但它似乎只将罐子转换为dll,而不是其他方式。将dll转换为jar

编辑:如果有一个工具从dll创建java类,那也没关系。 在此先感谢

+0

Jar和dll是由两个不同的编译器生成的吗? – mjosh

+0

没错。我试图找到一个工具,将读取DLL并将其编译到一个罐子。或者将创建匹配的java类。 –

+1

我非常怀疑这样的工具存在或甚至是可能的。 –

回答

4

没有这样的工具。

一个dll是一个本地编译的库。这意味着它被编译成机器码。可能由C/C++/C#编译器编译。

jar文件是一个压缩文件,其中包含'.class'文件,这些文件是编译为'java虚拟机代码'的文件。可能由java/clojure/scala编译器编译。

这些是两个非常不同的不兼容的东西。

创建这样一个可以做这种翻译的工具并不是不可能的,但它肯定是一项非常困难的任务,因为它需要从一个机器代码翻译到另一个,并且需要管理多个问题,如依赖解决方案,不同类型的结构等。

然而,我想象你想这样做,因为你想在一些java代码中使用DLL。这有些可能,但实际上很复杂。你需要使用JNI。

看看这个问题,因为它可以帮助你达到你想要做什么: Calling C++ dll from Java

+0

尽管将dll文件封装在jar文件中是一种常见的做法。 – bvdb

1

这实际上是执行一件容易的事。将.dll转换为.jar与在命令行中使用com4j和一些命令一样简单。

  1. 下载com4j。
  2. 打开命令行并导航到上述步骤中的com4j目录。
  3. 执行以下命令。

Java的罐子tlbimp.jar -o outputFolder -p nameOfPackage “pathToFile”

  • 然后用以下JAR结果:

    罐子CF desiredJarName .jar文件夹YouWantJard