是否可以使用Java创建dll?

问题描述 投票:12回答:9

要为Window XP创建动画dll创建Java2d动画并导出为dll可以吗?

java dll
9个回答
12
投票

是。您需要用C ++编写代码以使用JNI的调用接口启动JVM并对其进行调用。但是,您可能会发现很难以这种方式创建与Windows环境应用程序无缝集成以显示动画的窗口。这是一种相当高级的JNI用法,建议您在尝试JNI之前先阅读一下。


2
投票

我很怀疑,除非那里有一些第三方工具。对于涉及图形的情况,机会更低。


2
投票

实际上,昆汀所说的应该起作用。当使用GCJ将Java编译为本机时,首先需要将.java文件编译为平台特定的.o(目标)文件。大概您会将.o文件编译为dll而不是exeGCJ还包括垃圾收集器和基本Java库之类的组件。没有一个都需要运行JVM。令人沮丧的是dll很大。借助所有默认库和垃圾收集器,使用GCJ编译时,一个简单的“ Hello World”应用程序为~35MB。同样,您的dll将会很大。


1
投票

我很确定您只能从Java而不是dll创建.Jar文件


1
投票

存在一些“桥”,允许Java和非Java代码相互调用。根据您要完成的工作,这些方法可能会很有用,因为您可以编写Java代码,然后从C ++或C#DLL对其进行调用,这取决于创建DLL所使用的语言,这也将决定使用哪种语言。桥接您需要的。我从未见过免费提供的桥梁。我在寻找时发现的所有物品都必须购买。


1
投票

不,IIRC,你不能。 DLL在加载时直接链接。 Java代码需要一个jvm,因此您只能提供一个启动jvm并在此处启动代码的dll,但并非所有必需的东西都适合该dll。

您不应该这样做。看来您要为问题使用错误的方法。


1
投票

嗯...

  1. GCJ is available for Windows
  2. GCJ是GCC的一部分。
  3. GCC can create dlls

可能可以将它们放在一起以使用GCJ构建DLL。


0
投票

我同意bmargulies。对于专家来说,这可能是可行的,但是它将是一个很大的DLL,并且您可能会混合使用从来没有在一起工作的技术。我认为尝试这样做是没有意义的。


0
投票

是,可以从Java源代码生成DLL。

我使用过的2种方法:

  1. IKVM
  2. Graal

IKVM已经成熟,但是生成的DLL的运行时执行相当慢。

Graal很快,但是在Windows环境中尚不成熟。有关更多信息,请参见https://openjdk.java.net/jeps/295

也有其他商业选择。

© www.soinside.com 2019 - 2024. All rights reserved.