使用IKVM和ikvmc进行休眠

时间:2012-05-24 10:40:42

标签: java .net hibernate porting ikvm

我在一个项目中工作,我们必须将java应用程序移植到.Net,但用户希望继续使用它,所以我们必须提供错误修复,维护。

java应用程序是2层,后面是swing UI和Hibernate。我的想法是引入服务层并将应用程序拆分为服务层后面的更多功能组件。在此端口之后,UI仅进入C#并使用IKVM调用java组件(将所有jars与ikvmc编译为dll),最后逐个移植组件。 (通过这种方式,我们可以继续移植并提供支持)

我盯着评估IKVM,但我坚持休眠。首先,我想立刻为所有库调用ikvmc:

ikvm-7.0.4335.0\bin\ikvmc.exe -target:library -assembly:hibernate_hellow_deps antlr-2.7.6.jar commons-collections-3.1.jar commons-lang3-3.1.jar commons-pool-1.5.6.jar derbyclient.jar dom4j-1.6.1.jar hibernate-commons-annotations-3.2.0.Final.jar hibernate-core-3.6.9.Final.jar hibernate-jpa-2.0-api-1.0.1.Final.jar hibernate-validator-4.2.0.Final.jar javassist-3.12.0.GA.jar jta-1.1.jar log4j-1.2.16.jar slf4j-api-1.6.4.jar slf4j-log4j12-1.6.4.jar validation-api-1.0.0.GA.jar

我收到了很多警告,例如:

Warning IKVMC0100: class "org.xmlpull.v1.XmlPullParser" not found

对我来说,似乎我必须使用ikvmc编译所有jar文件,这些文件位于hibernate库的依赖树和依赖项的依赖项等中。

这是正确的方法,我应该编译所有依赖项吗? 这是正确的方法,还是我可以用另一种方式将我的java组件(jar文件)与IKVM一起使用?

我也会评估jnbridge。

THX, 50

1 个答案:

答案 0 :(得分:1)

您只需要编译所需的jar文件。如果这是可选组件,则可以忽略此警告。