我在一个项目中工作,我们必须将 Java 应用程序移植到 .Net,但用户希望继续使用它,因此我们还必须提供错误修复和维护。
Java 应用程序是 2 层,后面有 Swing UI 和 Hibernate。我的想法是引入一个服务层,在服务层后面将应用拆分成更多的功能组件。在此之后仅将 UI 移植到 C# 并使用 IKVM 调用 java 组件(使用 ikvmc 将所有 jar 编译为 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 文件,这些 jar 文件位于休眠库的依赖树中,以及依赖项的依赖关系等。
这是正确的方法,我应该编译所有依赖项吗?这是正确的方法,还是我可以以另一种方式将我的 java 组件(jar 文件)与 IKVM 一起使用?
我也会评估 jnbridge。
谢谢,五十