我有一个使用IKVM转换的Java库的项目.我添加了创建的DLL以及所有可能的IKVM DLL作为我的项目的引用,但是当我运行它时,我得到以下运行时错误:
System.IO.FileNotFoundException:无法加载文件或程序集'core,Version = 0.0.0.0,Culture = neutral,PublicKeyToken = null'或其依赖项之一.该系统找不到指定的文件.
我不确定如何调试此错误.有没有办法确切知道缺少哪种类型?从描述我猜这是生成的DLL(来自Java lib),但我已正确添加它作为参考.
还有什么我做错了?
我正在使用IKVM将Java程序移植到.NET .不幸的是IKVM的Graphics2D的实现抛出一个NotImplementedException drawGlyphVector,即它需要被"充实"用.NET实现(或把它简化成的哪些其他IKVM Graphics2D的方法调用的实现).
在.NET中我可以使用什么想法来提供在IKVM中为该方法实现的实现?
编辑#1:我的第一个预感是简单地调用GlyphVector.getOutline()然后填充该形状.不幸的是,getOutline()扔了自己的NotImplementedException.
好吧,现在我正在寻找一个替代GlyphVector它自己:NetGlyphVector,IKVM版本Glyphvector基本上只是一个存根类,几乎所有方法当前抛出NotImplementedExceptions ...
那么有谁知道.NET等同于Java的GlyphVector类?
IKVM是一个令人惊叹的野兽,它允许我在.NET环境中执行Java jar.也就是说,它是在.NET运行时(CLR)上编写的JVM.
相反的存在吗?有人在JVM上编写了CLR吗?通过适当的转换和基类库实现,我们可能会发现.NET代码在一个积极的JIT编译器(如HotSpot)中比在CLR JIT中执行得更快.
我正在使用IKVM在我正在使用的Mono项目上获取SVNKit,我有一个实现SVNKit接口的类,我无法编译:
在Windows和.NET上,一切都编译得很好,只需在Mono上获取.
/home/nubela/Workspace/subsync/subsync/Core/Subversion/PropGetHandler.cs(22,22):错误CS0535:
Subsync.Core.Subversion.PropGetHandler' does not implement interface memberorg.tmatesoft.svn.core.wc.ISVNPropertyHandler .__ <clinit>()`(CS0535)( subsync)
我用googled __<clinit>()方法,它似乎是从IKVM编译的Java库中的基类的初始化方法.
我不知道如何继续现在,任何想法的家伙?:)
在本文中, Jeroen解释了使用XML文件将Java Bean getter和setter重新映射到.NET Properties的示例.
将XML文件是什么样的,如果我想,说,所谓的重映射Java方法showDialog()以ShowDialog()在.NET?之前有没有人使用重映射选项?除了检查remapper.cs源代码之外,还有什么想法获取有关它如何工作的信息?
编辑#1 - 发现了一些肯定有帮助的东西:OpenJDK文件夹中的map.xml文件似乎具有相同的格式.
编辑#2哦.16小时内7次观看.:-)我已经正式达到SO知识的边缘......;)
IKVM.Reflection.Emit具有"读取和发出.NET 1.1,.NET 2.0和.NET 4.0程序集(在运行时,例如,.NET 2.0)"的能力."
Mono.Cecil有相同的吗?这个用例是否可以互换?它们现在都得到支持吗?它们之间的主要区别是什么(发射IL)?
我一直在研究IKVMing Apache的FOP项目,以便与我们的.NET应用程序一起使用.它是一种商业产品,在研究许可方面,由于使用了GNU Classpath,IKVM遇到了一些棘手的问题.从我所看到的,没有人可以肯定地说这些东西是否可用于商业产品.有没有人在商业产品中使用过IKVM或IKVM产品?这是我到目前为止所发现的:
IKVM许可证页面,其中指出一个DLL包含来自其他项目的代码,其许可证为GPLv2 + Classpath Exception
Saxon for .NET是使用IKVM生成的,但是在Apache许可下发布...
有人有这方面的经验吗?
有没有人成功地将Apache FOP v1.0库编译成.NET DLL?我正在使用http://onjava.com/pub/a/onjava/2004/08/18/ikvm.html上的IKVM语法; 但是,编译的DLL似乎不完整.例如,我无法将FopFactory对象实例化为:
using org.apache.fop.apps;
namespace Utils
{
public class PdfRender
{
public void Render()
{
FOUserAgent foUserAgent = fop.getUserAgent();
FopFactory fopFactory = FopFactory.newInstance();
}
}
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用由scala代码编译的jar文件中的ikvmc生成的DLL(是的,我的日子很棒).Scala编译器似乎生成包含运算符重载的美元符号的标识符,而IKVM使用生成的DLL中的那些(我可以在Reflector中看到它).问题是,美元符号在C#代码中是非法的,因此我无法引用这些方法.
有办法解决这个问题吗?
ikvm ×10
.net ×6
java ×5
c# ×3
apache-fop ×1
graphics ×1
jvm ×1
load ×1
mono ×1
mono.cecil ×1
reflection ×1
runtime ×1
scala ×1
text ×1
xml ×1