是否可以使用Java来创建DLL?

时间:2009-11-20 15:00:54

标签: java dll

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

9 个答案:

答案 0 :(得分:12)

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

答案 1 :(得分:2)

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

答案 2 :(得分:2)

实际上,Quentin所说的应该有效。
当您使用GCJ将java编译为本机时,首先将.java文件编译为特定于平台的.o(对象)文件。大概你会将.o文件编译成dll而不是exeGCJ还包括垃圾收集器和基本java库等组件。这些都不需要JVM运行。沮丧的是dll将是巨大的。由于所有默认的库和垃圾收集器,使用GCJ编译时,一个简单的“Hello World”应用程序是~35MB。同样,您的dll也会很大。

答案 3 :(得分:1)

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

答案 4 :(得分:1)

不,IIRC你不能。 DLL在加载时直接链接。 Java代码需要一个jvm,所以你只能提供一个启动jvm的dll并在那里启动代码,但并不是所有东西都适合dll。

你不应该这样做。看起来你正试图用错误的方法处理你的问题。

答案 5 :(得分:1)

有“桥”允许Java和非Java代码相互调用。根据您要完成的任务,这些可能很有用,因为您可以编写Java代码,然后从C ++或C#DLL调用它,具体取决于您使用哪种语言创建DLL,这也将决定什么类型的你需要的桥梁。我从未见过一个自由提供的桥梁。所有我在寻找的时候都必须购买。

答案 6 :(得分:1)

嗯...

  1. GCJ is available for Windows
  2. GCJ是GCC的一部分。
  3. GCC can create dlls
  4. 有可能将它们放在一起使用GCJ构建DLL。

答案 7 :(得分:0)

我同意bmargulies。这对于专家来说可能是可行的,但它将是一个大型DLL,你将混合从未合作过的技术。在我看来,尝试这个是没有意义的。

答案 8 :(得分:0)

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

我使用过的2种方法:

  1. IKVM
  2. 粮食

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

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

还有其他商业选择。