问题标签 [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 投票
3 回答
2008 浏览

java - IKVM 和许可

我一直在研究 IKVMing Apache 的 FOP 项目以与我们的 .NET 应用程序一起使用。它是一个商业产品,在许可方面,IKVM 遇到了一些棘手的问题,因为它使用了 GNU 类路径。就我所见,没有人能确定这些东西是否可以用于商业产品。有没有人在商业产品中使用过 IKVM 或 IKVM 的产品?这是我到目前为止发现的:

IKVM 许可证页面,其中指出一个 dll 包含来自其他项目的代码,它们的许可证GPLv2 + Classpath Exception

Saxon for .NET是使用 IKVM 生成的,但在 Apache 许可下发布...

有人有这方面的经验吗?

0 投票
1 回答
366 浏览

java - IKVM 中的缓冲图像

BufferedImage用 IKVM 替换我正在转换为 .NET 的 Java 项目的缺失功能的最佳和/或最简单的方法是什么?

运行应用程序时,我基本上得到“ cli.System.NotImplementedExceptionBufferedImage ”异常,否则运行良好。

0 投票
3 回答
2502 浏览

c# - 如何让 IKVM 在 Visual Studio 2008 中构建?

我已经从http://sourceforge.net/cvs/?group_id=69637下载了 IKVM 源代码 ( http://www.ikvm.net/ )

现在我正试图让它在 Visual Studio 2008 中构建并被卡住。有谁知道如何构建这个东西的文档,或者甚至可以给我指点?

我尝试打开 ikvm8.sln,它会打开所有项目,但尝试构建解决方案会导致一堆“找不到类型或命名空间”错误。

正如您可能猜到的那样,我不是 Visual Studio 专家,而是习惯于在 Eclipse 中使用 Java。

同样,我正在寻找:分步说明或有关如何在 Visual Studio 中构建 IKVM 的文档链接。

如果您需要更多信息,请告诉我。谢谢你的帮助!

编辑:我也试过手册“MsBuild.exe IKVM8.sln”,但也得到了一堆:

编辑#2:我注意到一个“ikvm.build”文件,所以我下载并在该文件夹上运行了 nant,这让我更进一步。一些东西开始成功构建,不幸的是我现在收到以下错误:

ikvm-native-win32:

编辑#3:OK 通过放入cl.exe路径解决了这个问题,但仍然出现其他错误。请注意,这一切都是为了在控制台上构建它,例如使用 Nant。有没有办法让它在 Visual Studio 中构建?那会很难过...

编辑#4:下一步是安装 GNU 类路径 0.95,现在看来我需要一个特定的 OpenJDK 安装……Linux AMD64?!

编辑#5:得到作者的回答。见下文或http://weblog.ikvm.net/CommentView.aspx?guid=7e91b51d-6f84-4485-b61f-ea9e068a5fcf 让我们看看它是否有效......

编辑#6正如我所担心的,下一个问题:“无法打开 windows.h”,请参见此处的单独问题。

最终编辑:找到解决方案!在 Lib 和 Path 环境变量中获取 Platform SDK 文件夹后,我在下面描述的解决方案对我有用。

0 投票
2 回答
66201 浏览

c# - 致命错误 C1083 - 无法打开包含文件:“windows.h”:没有这样的文件或目录

我正在尝试构建 IKVM(请参阅此问题),但现在遇到了与 IKVM 无关的问题,因此我提出了一个新问题:

使用 Visual Studio 2008 命令提示符(从“开始”菜单)在 IKVM 目录上运行 nant 时,出现以下错误:

我已经安装了平台 SDK。我错过了什么?我确定这很简单...

编辑#1我刚刚检查过 - 我确实在路径上有包含 windows.h 的目录。 编辑 #2找到答案(请参阅下面的答案):包含 windows.h 的目录需要位于“包含”路径变量中。

0 投票
1 回答
553 浏览

xml - IKVM 的 Remap XML 文件的格式是什么?

本文中,Jeroen 解释了一个使用 XML 文件将 Java Bean getter 和 setter 重新映射到 .NET 属性的示例。

如果我想重新映射在 .NET 中调用showDialog()的Java 方法,那么 XML 文件会是什么样子?ShowDialog()以前有人使用过重新映射选项吗?除了检查remapper.cs源代码之外,知道从哪里获取有关其工作原理的信息吗?

编辑 #1 - 找到了一些肯定有帮助的东西:OpenJDK 文件夹中的map.xml文件似乎具有相同的格式。

编辑#2哎哟。16 小时内观看 7 次。:-) 我已经正式接触了 SO 知识的边缘...... ;)

0 投票
4 回答
1317 浏览

asp.net - 部署到 IIS 时 ASP.NET 应用程序中断

我正在开发一个用于在线购物的小型 ASP.NET 网站,在 Visual Studio 中对其进行测试时,一切正常,但是当我将其部署到 IIS 时,情况不再如此。

问题似乎出在我引用的 DLL 文件中,该 DLL 文件包含我需要初始化的类并将查询请求发送到具有所有产品信息的另一台服务器。这个 DLL 最初是一个 Jar 文件,我使用 IKVM 将其转换为 DLL。

当我将应用程序部署到 IIS 时,尝试实例化在该 DLL 中定义的对象的任何页面都会失败并显示空引用,例如:

返回此错误:

System.NullReferenceException: 你调用的对象是空的。在Fulfiller.toLog(String )Fulfiller.initialize(String str1, Int32 i, String str2, String str3) _Orders.createDataSource()

现在再次,这在 VS 开发服务器上完美运行,但在 IIS 中中断,我不知道为什么。在 IIS 上运行时,DLL 没有正确加载是某种编码问题吗?还是 IIS 的问题,可能会阻止 DLL 执行或发送请求,我非常渴望解决这个问题

谢谢

0 投票
1 回答
900 浏览

java - .NET 等效或替代 Java 的 GlyphVector?

我正在使用IKVM将 Java 程序移植到 .NET 。不幸的是,IKVM 的 Graphics2D 实现在drawGlyphVector中抛出 NotImplementedException ,即它需要用 .NET 实现“充实”(或通过将其减少为对实现的其他 IKVM Graphics2D 方法的调用)。

.NET 中的等价物有什么想法可以用来在 IKVM 中为该方法提供实现吗?


编辑#1:我的第一个预感是简单地调用GlyphVector.getOutline()然后填充该形状。可惜getOutline()自己扔了NotImplementedException

好吧,现在我似乎正在寻找一个替代方案GlyphVector:NetGlyphVector,IKVM 版本Glyphvector基本上只是一个存根类,几乎所有方法当前都抛出 NotImplementedExceptions ......

那么有人知道.NET 相当于Java 的GlyphVector类吗?

0 投票
3 回答
2131 浏览

c# - IKVM 和 System.Core System.Runtime.CompilerServices.ExtensionAttribute

我正在使用最新版本的 IKVM 将 Java .jar 文件“编译”成 .NET DLL。一切正常,现在我尝试在 .NET 3.5 C# 项目中引用 DLL。

在我的 C# 项目中,我创建了一个静态“StringExtensions”类,该类在字符串上具有扩展方法。

出于某种原因,这似乎在昨天有效,但今天,我的扩展类出现构建错误(不确定昨天是如何工作的......)。

还有一个构建警告:

我发现 IKVM.Runtime.dll 和 System.Core.dll(3.5 版本)都具有相同的类型:“System.Runtime.CompilerServices.ExtensionAttribute”

由于命名空间是相同的,我怎样才能让它与 ExtensionAttribute 的 System.Core 版本一起编译(或者我该如何解决这个问题)?

谢谢

0 投票
1 回答
341 浏览

.net - Castor 和 IKVM

我已经使用 IKVM 将用 Java 编写的 api 转换为 .net dll,到目前为止一切都很好。

它基本上在幕后使用 xml 来访问一些 Web 服务。该 api 是第 3 方,我无权访问源代码。该api使用Castor(我相信)将xml绑定到对象中。

然而,当我开始使用 api 的一些更有用的部分时,我遇到了 castor 的一个问题。我的具体错误是:

“嵌套错误:org.exolab.castor.mapping.MappingException:找不到类......”

提到的类是 api 的一部分。从网上搜索来看,castor似乎无法访问该类,因为它与 castor 位于单独的程序集中。

我的问题是我对 Java 中的类加载器了解得不够多,而且可能对 IKVM 了解得不够多,无法解决这个问题。

有没有人将 IKVM 与 Castor(或其他可能在 Java 类上使用反射的库)一起使用,并且之前遇到过这个问题?

0 投票
1 回答
1281 浏览

java - 从另一个程序集反序列化类型期间的类加载问题

有两个程序集:
1)包含序列化程序的程序集。这是序列化和反序列化开始的地方。
2) 包含序列化类型的程序集。这是从第一个程序集调用序列化程序的地方。
assembly1 中的序列化程序的想法很简单。它有两种方法用于将对象从字节数组转换为字节数组。该序列化程序的客户端代码如下所示:

MyClass 是在 assembly2 中定义的,因此 assembly1 对此一无所知。如果序列化器是用标准的 .Net 类实现的,那么该场景将起作用,如下所示:

MyClass 的序列化形式将包含有关定义 MyClass 的程序集的信息。但是,如果序列化器将使用 Java 的类(使用 IKVM 转换)来实现,那么在反序列化期间将抛出 ClassNotFound 异常。这是一个使用 Java 类的序列化器实现:

这在 .Net 中不起作用,但如果从 Eclipse 加载插件清单中的附加条目(例如 BuddyPolicy 和 RegisterBuddy),则在 Java 中可以正常工作。我不能只从 JavaSerializer 切换到 DotNetSerializer,因为在我的应用程序(主要用 Java 编写)中有很多 readObject、writeObject、readResolve 等......但我需要以某种方式解决这个问题,所以我寻求解决方案. 目前我看到了一些假设的解决方法:

  • 重载 ObjectOutputStream 的某些方法,因此 MyClass 的序列化形式也将包含程序集名称,例如“MyClass,MyAssembly,...”。
  • 重载 ObjectInputStream 中的某些方法,因此类将以某种不同的方式加载,也许应该在某些不同的程序集中进行搜索,等等。
  • 向程序集清单添加一些信息,以便 IKVM 知道在哪里搜索 MyClass。这是真的吗?这个问题应该如何解决?