Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在C#中使用.jar java库API?_Java_C#_.net_Interop - Fatal编程技术网

在C#中使用.jar java库API?

在C#中使用.jar java库API?,java,c#,.net,interop,Java,C#,.net,Interop,我是一个入门级程序员,所以请在你的回答中描述 我试图在我的C#.net应用程序中使用作为.jar文件提供的Java API。我对Java知之甚少,但当我尝试运行这个.jar文件时,它会说“没有主类清单属性”,所以这意味着它是一个库?这个JavaAPI还附带了一个.Java文件,该文件显示了如何使用该库,但我看不到.jar中的代码 我在这个网站上找到了答案,其中一个答案是:“用一种简单的方法,你可以将java类打包到jar文件中,然后在C#中使用Process类执行并映射IO流。”我对C#中的Pr

我是一个入门级程序员,所以请在你的回答中描述

我试图在我的C#.net应用程序中使用作为.jar文件提供的Java API。我对Java知之甚少,但当我尝试运行这个.jar文件时,它会说“没有主类清单属性”,所以这意味着它是一个库?这个JavaAPI还附带了一个.Java文件,该文件显示了如何使用该库,但我看不到.jar中的代码

我在这个网站上找到了答案,其中一个答案是:“用一种简单的方法,你可以将java类打包到jar文件中,然后在C#中使用Process类执行并映射IO流。”我对C#中的Process类半熟悉,但我不明白如何在我的C#.net项目中使用java库

这可能吗?还是这个答案不正确


如果是的话,你能解释一下我如何在我的C#app中使用.jar库吗。

你可以使用IVKM.Net。IVKM.NET包含一个名为ikvmc的应用程序。以下是此工具的文档:

要使用它,请将java代码编译成Jar

然后运行ikvmc程序:

ikvmc myCode.jar

如果您的jar包含main()函数,它将被转换为可在CLR上运行的exe。否则将转换为dll。要在项目中使用dll,只需将它们添加为Visual Studio中的引用,即可在.Net应用程序中访问Java中可用的相同API

您还可以包括来自ikvmc的IKVM.GNU.Classpath.dll,并在应用程序中使用标准java类库。

请查看。。。它有一些工具可以为您提供某种程度的互操作。当你说JavaAPI时,我假设你想从jar调用一些功能,而不是仅仅执行它

  • 您可以使用IKVM.NET-

    在官方网站上下载-您可以 ikvmbin-7.2.4630.5(适用于Java 7)

    但是,在所有者的博客上,您可以下载更新的版本。 -你可以 ikvmbin-8.1.5717.0(适用于Java 8)

    要创建dll/exe,请使用:

    ikvmc hello.jar

  • 另一方面,如果您可以编辑.jar库(您创建了它),那么 可以用这个项目


  • 谢谢,我会试试的。一旦我有了.dll并将其导入到我的项目中,我是否应该使用Pinvoke调用库的函数?您不需要使用Pinvoke。你应该能够简单地调用api,就像它是用C#编写的一样。你应该将“在CIL上运行”更改为“在CLR上运行”好东西,只是在我的.net应用程序中使用了它,工作起来很有魅力。谢谢,我很确定你让我成为了一个办公室英雄。没错,.jar没有执行,它报告了一条错误消息,上面写着:“未能从…加载主类清单属性。”。一旦将.jar转换为.dll,我将尝试使用与使用.jar的java编码示例相同的方法。