问题标签 [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 回答
417 浏览

java - 使用 IKVM 和 ikvmc 休眠

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

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

我一直盯着评估 IKVM,但我停留在休眠状态。首先,我想一次为所有库调用 ikvmc:

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

对我来说,我似乎必须用 ikvmc 编译所有 jar 文件,这些 jar 文件位于休眠库的依赖树中,以及依赖项的依赖关系等。

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

我也会评估 jnbridge。

谢谢,五十

0 投票
2 回答
2198 浏览

java - weka 培训和 java 培训的不同结果

我正在尝试使用 weka 的 java api 创建一个“自动训练”,但我想我做错了什么,每当我使用 MultiLayerPerceptron 和 10 交叉验证或 66% 百分比拆分通过 weka 的界面测试我的 ARFF 文件时,我都会得到一些令人满意的结果(大约 90%),但是当我尝试通过 weka 的 API 测试同一个文件时,每个测试基本上都返回 0% 匹配(每一行都返回 false)

这是 weka 的 gui 的输出:

=== 测试拆分评估 === === 总结 ===

=== 按等级划分的详细准确度 ===

=== 混淆矩阵 ===

这是我在java上使用的代码(实际上是在.NET上使用IKVM):

这很有趣,因为如果我将分类器更改为让我们说 NaiveBayes,结果与通过 weka 的 gui 进行的测试相匹配

0 投票
1 回答
1532 浏览

macos - 控制台单声道可执行文件完成后不退出

我有一个 .NET 项目,多年来我一直在用 Visual Studio 编译并在 Windows 上成功运行。我想转而使用 Mac OS X 来运行这个特定的程序,因此使用单声道已经有一段时间了,这使这成为可能。结果非常好,程序在单声道(2.10.9,BTW)下按预期执行。

唯一的问题是程序完成后不会退出。它是一个单线程进程,但是当它的工作完成时(它在Main(string[])方法结束时报告),进程并没有退出;^C需要返回到 shell 提示符。最后添加显式System.Environment.Exit(exitCode);调用没有任何效果。

几年前,我在这里只找到了一个关于这类问题的故事,尽管那个 ML 线程没有提供潜在的解决方案。

0 投票
0 回答
308 浏览

java - API 设计:最好将 IKVM java.util.Set 包装在 .NET 4 ISet 中?

我正在使用IKVM向 .NET 公开一个 Java 库,它将 Java 字节码编译为 CLR 字节码。这很好用,我的问题与 API 设计有关。我的 API 非常简单和小巧。方法调用返回一个实现 java.util.Set 的对象。我的问题是,从 .NET 开发人员的角度来看,以下哪一项对开发人员更友好:

  1. 要将此 Java 对象直接返回给开发人员,在这种情况下,开发人员必须将 IKVM Core 和 Util 库导入到他们的代码中,或者
  2. 尝试将返回的 Java 对象包装在 .NET 友好的界面中?.NET 的唯一 Set 接口标准是ISet,它只存在于 .NET 4 中。

一般来说,我认为将返回的对象包装在 .NET 开发人员期望看到的接口中会更好,这表明最好将我的公共 API 设计为返回 ISet。但是,我也认为允许我的应用程序在早期版本的 .NET 上运行会很好,如果 API 依赖于 ISet,这是不可能的。如果我不使用 ISet,那么似乎任何 Set 接口都是可以接受的,包括 java.util.Set。

任何人都可以提供任何指导,我将不胜感激。

0 投票
1 回答
176 浏览

c# - 在 C# 程序中调用使用 IKVM 生成的 dll 库中的函数,并带有 List 参数

一切都在标题中。我从一个包含在我的 C# 项目中的 jar 生成了一个 dll 文件。我尝试从库中调用一个函数,该函数在参数中使用 java.util.List 但我不能使用它,我想知道是否有解决方法。我还将 IKVM.OpenJDK.Util.dll 添加到我的项目中,但它仍然是同样的问题。希望有人能帮忙,谢谢

0 投票
1 回答
740 浏览

c# - 在负载下插入内容时找不到 com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl

我们正在使用 Marklogic XCC .Net 库将文档插入 Marklogic。但是在负载下(45 个并发用户),我们开始收到异常消息 Provider com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl not found 有人知道吗?

代码是

0 投票
1 回答
686 浏览

c# - 如何使用 IKVM 静态注册加密提供者?

在 Java 中,可以通过编辑 JRE 或 JDK 的安全策略文件来静态注册像BouncyCastle 这样的安全提供者,或者通过以编程方式添加提供者来动态注册。

当像 BouncyCastle 这样的 java 安全提供程序使用IKVM转换为 C# 可调用 dll时,可以通过添加对以下 C# 代码的引用,然后IKVM.OpenJDK.Core通过dll 继续使用 BouncyCastle 。IKVM.OpenJDK.Security

我知道 BouncyCastle 的源代码已经以 C# 的形式提供。但是,我需要将我自己用 Java 编写的加密库转换为可在 C# 中使用,因此我需要利用IKVM来实现这一点。我已经可以通过将我的加密库从 jar 转换为 dll 并使用如上所述的动态方法来做到这一点。

只是想知道是否可以像在 Java 中一样使用IKVM静态注册提供程序。有任何想法吗?

0 投票
1 回答
1168 浏览

java - 将 Scala 库转换为 DLL (.NET)

我正在尝试从 scala 类中创建一个 Dll。我将 IntelliJ 与 SBT 一起使用。我已经找到了一种使用 ikvm-converter 将 .jar 文件转换为 Dll 的方法。现在的问题:当我在 SBT 下使用“包”从我的 .scala 文件中创建一个 .jar 文件并尝试使用 ikvmc 将其转换为 Dll 时,结果库在集成到 C# 时为空...

例如,转换 Jama-Library(用 Java 编写)可以正常工作,而转换 Scama(用 Scala 编写)则不起作用。

有没有办法将scala代码转换为dll?是否有“Scala 到 Java”的转换工具?

最好的问候,克里斯托夫

0 投票
2 回答
958 浏览

saxon - 使用 Saxon API 和 IKVM 的基本 Web 应用程序抛出异常

我创建了一个基本的 .NET 4.0 应用程序并引用了 Saxon 程序集。这是我在项目中引用的 dll 列表。

saxon9.dll saxon9api.dll IKVM.OpenJDK.ClassLibrary.dll IKVM.Runtime.dll

该应用程序的代码如下:

当我在我们的 IIS 机器上运行这个应用程序时,我得到以下输出:

正在尝试实例化 SaxonProcessor... Saxon 实例化成功!

然后,我创建了一个基本的 Web 应用程序项目并引用了与 Windows 应用程序相同的文件。我将 Web 应用程序部署到包含所有引用程序集的虚拟目录。我将以下代码放入我的 Default.aspx 页面中:

公共类 _Default 继承 System.Web.UI.Page

结束类

当我加载页面时,它给了我这个异常:

尝试实例化 SaxonProcessor...错误:“IKVM.NativeCode.java.lang.Thread”的类型初始化程序引发异常。在 IKVM.NativeCode.java.lang.Class.forName0(String name, Boolean initialize, Object loader) at java.lang.Class.forName0(String , Boolean , ClassLoader) at java.lang.Class.forName(String className) at net.sf.saxon.dotnet.DotNetExtensionFunctionFactory.class$(String x0) at net.sf.saxon.dotnet.DotNetExtensionFunctionFactory..ctor(Configuration config) at net.sf.saxon.dotnet.DotNetPlatform.initialize(Configuration config) at net.sf.saxon.Configuration.init() at net.sf.saxon.Configuration..ctor() at Saxon.Api.Processor..ctor() at BealSaxxon._Default.Page_Load(Object sender, EventArgs e) in C :\Users\u0147101\Desktop\BealSaxxon\BealSaxxon\Default.aspx.vb:第 9 行

来自 IIS 机器的完整堆栈跟踪:

有没有人见过这个异常?我在谷歌上进行了广泛的搜索,但似乎没有人有这个特定的例外。我认为这是 IIS 的权限问题,但我不确定。运行此应用程序的应用程序池是由机器管理员设置的。

0 投票
1 回答
149 浏览

mono - 抑制视网膜设备上的内容缩放

嗨,我正在一个名为 PlayN 的框架中开发小型项目,该框架使用单声道进行 IOS 开发。

我在理解内容比例因子以及如何禁用其自动拉伸和缩放时遇到问题。

我想使用布局管理器手动缩小和放大图像(主要是为了支持不同的布局以及更多的分辨率(对于 android)和方向)。

目前,当加载 960x640(在 opengl 中)时,我在 3gs 的 480x320 帧之外按预期绘制(我只看到图像的左上半部分)但是当我在视网膜设备上加载相同的图像时,它将使用内容比例因子2 并将我的 960 图像缩放到 1920(所以我仍然只能看到图像的上半部分,但被拉伸了),因为它认为它是低分辨率图像(未标记为 @2x)。我可以在不禁用视图的较大帧缓冲区的情况下禁用此自动缩放吗?

我不是 IOS 开发人员,我很乐意接受任何帮助。