gpt4 book ai didi

java - 使用 IKVM 将 .jar 导入 .dll 并使用它

转载 作者:太空宇宙 更新时间:2023-11-04 13:57:40 24 4
gpt4 key购买 nike

我正在尝试在我的 C# 项目中使用外部 jar 中的方法。所以,我有一个java项目

package externalpackage.srp;

public class stringPair {
private String a;
private String b;

public stringPair(String a, String b) {
this.a = a;
this.b = b;
}
public String concat() {
return this.a + this.b;
}
}

我用IKVM将它导入到dll中:

ikvmc test.jar

然后我将 test.dll 添加到引用中。现在我尝试在我的 C# 项目中使用它。

using System;
using System.Reflection;
using System.Reflection.Emit;

namespace HelloWorld
{
class Hello
{

static void Main()
{
string a = "aaa";
string b = "bbb";
java.lang.Class clazz = typeof(externalpackage.srp.stringPair);
java.lang.Thread.currentThread().setContextClassLoader(clazz.getClassLoader());
object obj = new externalpackage.srp.stringPair(a, b);
Console.WriteLine(obj.concat());
Console.ReadKey();
}
}
}

并且 Visual Studio 显示错误:“object”不包含“concat”的定义,并且找不到接受“object”类型的第一个参数的扩展方法“concat”(您是否缺少 using 指令或程序集引用?)

看起来对象创建成功,但是 contat 方法却无法执行。我应该如何正确使用 concat?

最佳答案

您只需将变量的类型更改为 stringPair (而不是 object):

对象 obj = new ...

externalpackage.srp.stringPair obj = new ...

关于java - 使用 IKVM 将 .jar 导入 .dll 并使用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29653998/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com