问题标签 [ikvm]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1123 浏览

ikvm - IKVM 从 .NET 项目加载 jars

有没有办法使用 IKVM 从 .NET 项目加载 jar 文件?

我要实现的目标总结 1) 我有一个 .NET 项目,它使用使用 IKVM 编译为 .NET DLL 的 Java 代码 (MYClass)。2) MyClass 函数 F1() 使用存在于说 Try.jar 中的类。3) 当我从 .NET 代码调用 Function F1() 时,它会引发与 Try.jar 相关的异常

我的问题是可以在 .Net 项目中加载 Try.jar。我不想使用 ikvmc 将 Try.jar 编译为 DLL。

0 投票
2 回答
1826 浏览

c# - .NET 中的 FOP 和 IKVM - 图像不工作

UPDATE2:我现在可以完全正常工作了!向下滚动以了解如何...
更新:我得到了它的工作!嗯……部分。向下滚动寻找答案...

我正在尝试让我的 FO 文件在将其转换为 PDF(或 RTF)时显示外部图像,但我不确定 RTF 是否甚至能够显示图像 (他们是))与 FOP,但我似乎无法让它工作。(这里提出的问题我的不同。)

我正在使用 IKVM 0.46.0.1 并编译了一个 FOP 1.0 dll 以放入 .NET;当我没有尝试添加图像时,此代码运行良好:

但是,当我(或者更确切地说是 DocBook2FO 转换)添加以下代码时:

进入FO文件,图像没有显示。我阅读了Apache 网站上的一些常见问题解答,上面写着:

3.3. 为什么我的图形没有渲染?

最常见的是,FOP 找不到外部文件。检查以下内容:

空的或错误的 baseDir 设置。

文件名中的拼写错误(包括使用错误的大小写)。

...

其他选项似乎不是我的情况(主要是因为以下原因 - “奇怪的部分”)。我试过这个:

无济于事。

奇怪的部分

当我使用 FOP 的命令行实现时,它可以正常工作并毫无问题地显示我的图像。(我不想走 run-command-line-from-program 路线,因为我不想强迫用户在他们想要使用我的程序时安装 Java 和 .NET 框架。)
png 文件是从我的应用程序中的 GDI+ 生成的(使用 Bitmap.Save)。我也尝试了不同的 png 文件,但它们都不适合我。
有什么我可能会丢失的吗?

非常感谢你能走到这一步

更新和可能的答案

所以我可能已经弄清楚为什么它不起作用了。我花了一些时间研究代码(在我基本上只是复制粘贴它而不考虑它之前)。问题确实出在错误的 basedir 设置中。

关键就在这段代码中:

这里发生的是身份转换,它将自己的结果路由到我之前创建的 FOP 实例中。这有效地将路由 FO 的 basedir 更改为应用程序可执行文件的 basedir。我还没有弄清楚如何在不进行转换并将我的输入直接路由到 FOP 的情况下做到这一点,但目前我通过将图像复制到可执行文件的目录中来解决这个问题。

这就是另一个问题出现的地方。现在,每当我尝试执行代码时,我都会在“ ”行出现异常,transformer.transform(src, res);这让我感到困惑,因为它什么也没说。ExceptionHelper 说:

java.lang.ExceptionInInitializerError 被捕获

并且没有内部异常或异常消息。我知道仅从我写的内容很难调试,但我希望可能有一个简单的修复。

此外,这封电子邮件似乎与此相关,但没有任何答复。

更新2

最后,在几个不眠之夜之后,我设法用最简单的方法之一让它工作。

我更新了 IKVM,用新版本编译了 fop,并用新的 dll 替换了 IKVM 引用。该错误不再发生,我的图像渲染良好。

我希望有一天这对某人有所帮助

0 投票
1 回答
911 浏览

java - ikvm java spring 问题:找不到元素“beans”的声明。

我正在使用 ikvm .46 将 java 转换为 dll。

我正在尝试调用一个用 java 编写的函数(转换为 DLL )来加载 spring beans。我已将所有依赖项转换为 dll。但是 Event 最简单的应用程序上下文没有被加载。

应用上下文:/ * ** * ** * ** * **** /

/ * ** * ** * ** * ** * /

加载Beans的代码片段:/ * ** * ** * ** * ** * **** /

'type' 被传递给函数并且所有 xml 都存在于路径中。/** * ** * ** * ** * ** * *** /

我得到的例外是:

我使用的 Spring 版本是:org.springframework.beans-3.0.0.RC1.dll

代码适用于 JVM。你能指出我在这里做错了什么吗?

感谢和问候 Ankur

0 投票
1 回答
2215 浏览

.net - Java 类无法获取使用 IKVM 编译的 JAR 文件中的资源

我已经使用 ikvmc 成功转换了一个 java 库。Java 库在其自身的 jar 文件中使用了一些资源。我可以访问这个 java 库的所有类,但是如果我调用一个调用 this.getClass().getResource() 的方法,它不会在程序集中或程序集中的 jar 文件中搜索这些资源。但是如果我将这些资源与程序集放在同一个文件夹中,它可以找到资源。但它并不是每次都能很好地工作。例如,如果我在网站项目 (mvc) 中引用程序集,它就找不到资源。我尝试将这些资源放到 bin 文件夹、根文件夹、视图文件夹等(请参阅我对这篇文章的评论)

所以我需要一个永久的解决方案。java 库是一个开源项目。但我不想改变来源。因为编译项目需要eclipse、ant、3rd party libs等。同样在Java库的下一个版本中,我将不得不更改代码并编译它。

我看到了 ikvmc 的“资源”参数。但我找不到这方面的文档或示例。

现在我将尝试实现一个从调用getResource 方法的java 类派生的.net 类。然后我将覆盖调用 getResource 方法的方法。但这也不是一个永久的解决方案。

0 投票
1 回答
149 浏览

c# - IKvm 和 wcf 序列化错误

我有可以通过使用ikvmin访问的 java 对象.net.object成功填充和操作 in WCF layer。但是在从 WCF 检索对象到客户端后,会填充客户端错误。

我正在使用wsHttpbinding. 请帮助解决我的问题。

0 投票
4 回答
6201 浏览

apache-fop - FOP/ikvm:错误“未找到提供程序 com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl”

我用 ikvm 从 fop-1.0 生成了一个 fop.dll:


如果我在 Windows 应用程序中使用我的 fop.dll,则一切正常。
如果我在类库中使用它,我会收到以下错误:

代码行是:

下面是方法的代码:

我使用 ikvm-0.46.0.1 来制作我的 fop.dll(基于 fop 1.0)。我包括以下罐子:

知道为什么会发生此错误吗?为什么 Windows 应用程序和类库之间的行为不同?

2011 年 10 月 19 日补充:
我设法完成了以下工作:

  • MyMainPrg(Windows 窗体应用程序)
  • MyFopWrapper(调用 fop.dll 的类库)

但就我而言,这不是解决方案,因为在我的目标项目中,我具有以下结构:

  • MainCmdLinePrg(控制台应用程序;调用 DLL_1)
  • DLL_1 (调用 DLLsharedFop) {有几个 DLL 可以调用 DLLsharedFop}
  • DLLsharedFop(直接调用 fop.dll;或者 - 我不在乎 - 可能调用 MyFopWrapper)

不幸的是,这种构造会导致错误。
您可以缩短为一对(ACmdLinePrg,MyFopWrapper):这已经不起作用了!但是 (MyMainPrg,MyFopWrapper) 确实...

0 投票
2 回答
6039 浏览

java - 使用 IKVMC 将 Java 转换为 .NET 库 - 警告 IKVMC0108:不是类文件

我想在我的 .NET 项目中使用Java 工具(称为 Mallet) http://mallet.cs.umass.edu/download.php 。

为了将此工具转换为 .NET 库,我尝试使用 Apache Ant 在单个 .jar 文件中构建它。我已经按照上面链接中的说明完成了所有操作。

  1. 从 Mercurial 存储库下载开发者版本。

  2. 下载 Apache Ant,安装 JDK,设置 JAVA_HOME var 以使用 Apache Ant。

  3. 使用 Ant 我已经构建了单个 mallet.jar 文件。

然后我会使用 IKVMC 将 mallet.jar 转换为 .NET 库。转换时,我收到了很多警告,例如:

尽管有这些警告,但还是创建了 mallet.dll。但是当我尝试从我的 .NET 项目中引用它时,它看起来是“空的”。它没有任何类或命名空间。我不会忘记参考 IKVM.OpenJDL.Core。

这很不寻常,我在 Google 中找不到任何相同的问题。

我认为这个问题出在警告中。而且我从未与 Ant 合作过,我并不完全了解所有流程。

0 投票
1 回答
834 浏览

java - IKVM:无法初始化 JAXP 1.3 DatatypeFactory class.in IKVM.OpenJDK.XML.Bind 错误

我将 ikvm 与 mpxj 项目一起使用。

我有一个像这样的非常简单的代码....

我得到一个异常.net,无法初始化 JAXP 1.3 DatatypeFactory class.in IKVM.OpenJDK.XML.Bind

错误:“net.sf.mpxj.mspdi.MSPDIWriter”的类型初始化程序引发异常。错误:无法初始化 JAXP 1.3 DatatypeFactory 类。错误:提供者 com.sun.org.apache.xerces.internal.jaxp.datatype.DatatypeFactoryI mpl 未找到错误:com.sun.org.apache.xerces.internal.jaxp.datatype.DatatypeFactoryImpl

我可以看到这个问题似乎与 IKVM 有关。你能告诉我有什么问题吗?

0 投票
2 回答
1230 浏览

java - 可以将编译为 DLL 的 Java 库用于开发 WP7 应用程序吗?

是否可以将 Java 代码编译成 DLL 以在 Windows Phone 7 应用程序中使用?

我知道可以将 Java 代码编译成 jar 并运行 IKVM.NET 以将其转换为 .NET DLL,但是该 (.NET) DLL 可以在 Windows Phone 7 应用程序中使用吗?

谢谢!

0 投票
2 回答
1186 浏览

dll - 从 jar 生成非依赖 ikvm dll

我需要将 jar 转换为使用 ikvm 实现的 dll。但是,每当我将 dll 添加到 Visual Studio 中的 ac# 项目时,它都会抱怨我需要添加对 ikvm.openjdk.core.dll 的引用。

类型“java.lang.Object”是在未引用的程序集中定义的。您必须添加对程序集“IKVM.OpenJDK.Core, Version=7.0.4335.0, Culture=neutral, PublicKeyToken=13235d27fcbfff58”的引用。

有没有一种方法可以在没有这种依赖的情况下将 jar 转换为 dll?也许某些命令会将所有内容“构建”到一个dll中?谢谢