问题标签 [jni4net]

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 回答
2487 浏览

java - JNI4Net C# 到 Java

我有一个简单的 Java 类jniBridge.Calculator,它有一个简单的方法Add(int a, int b)。使用 Eclipse 构建项目后,我将项目导出为 JAR 文件。

然后我在 JAR 文件上调用了 proxygen,这产生了一个名为的文件夹clr和另一个名为的文件夹jvm,分别包含 C# 和 Java 代理。Proxygen 还创建了一个build.cmd和一个.xml文件。

之后我运行build.cmd它产生了一个.DLL.JAR文件。

现在我想在 C# 中使用这些或其他任何东西,所以我将 .DLL 和 .JAR 文件复制到 .NET 项目文件夹中,并添加了对该文件的引用并将文件.DLL设置为输出文件夹,以便它与文件。我还添加了对 Jni4Net 主库文件的引用,并将其主 JAR 文件 , 复制到同一目录中。添加到转储中,我还添加了我开始使用的原始 JAR 文件。.JARCopy Always.EXEjni4net.n-0.8.6.0.dlljni4net.j-0.8.6.0.jar

在 C#Program.cs中,我执行以下操作:

但是,最后一次调用失败并出现以下异常:

未处理的异常:net.sf.jni4net.jni.JNIException:无法从 classLoader sun.misc.Launcher$AppClassLoader@e39a3e 加载 jnibridge.Calculator 的 java 类 ---> java.lang.ClassNotFoundException:jnibridge.Calculator

任何帮助请!

0 投票
1 回答
1713 浏览

c# - JNI4NET - how to run Java application from C# Class Library project?

I have Java swing application, and I want to run it from C#.

It works correctly when I use it from WindowsFormsApplication (see working version below). I set WindowsFormsApplication window invisible, and the application exits after I call System.exit(0); in Java. But when I try to run the same using ClassLibrary project, I cannot call Application.Run();, so the program exits immediately. (In debug mode using a breakpoint I can see that Java program with GUI initializes correctly and begins to run). How to make it wait until Java program exits?

Working example using WindowsFormsApplication:

Example using ClassLibrary project and ConsoleApplication as test

Update:

I tried starting new thread, but result is the same: the program exits immediately.

0 投票
1 回答
515 浏览

applet - 如何调用 DOTNET DLL 并使用 JAVA 小程序传递变量

我在 DotNET 中构建了一个 DLL。

我的应用程序是一个基于 Java 的托管在 APACHE 服务器上,并通过瘦客户端上的 Web 浏览器访问。

现在我将把 DOTNET DLL 文件放在瘦客户端而不是服务器上,我想使用 JAVA Applet 调用这个 DLL

因此,当我在基于 Java 的应用程序上按下一个按钮时,该应用程序可以通过浏览器从瘦客户端访问,它应该调用这台机器上的 DLL 文件并传递变量

需要高手指教。

0 投票
1 回答
484 浏览

c# - 使用 jni4net 将 java.lang.Object 转换为 .net 对象

如何将 jni4net 代理类的 double 值转换Object为 .NET double?SimpleConvert.ToDouble(o)不起作用,因为它是 nt 类型IConvertible

0 投票
2 回答
453 浏览

java - ubuntu 14.04 上的 JNI4Net

可以在 linux ubuntu 上使用 JNI4Net。我没有看到针对 linux 的特定下载部分。我发现这个例子是在没有第三方库 JNI4Net 的情况下使用 JNI。

我想用这个图书馆简化我的生活。

我正在尝试将 .net 库公开给 java。

0 投票
1 回答
2832 浏览

java - jni4net 无法在 Java 应用程序中加载 DLL

我正在尝试修改 jni4net 示例代码MyCSharpDemoCalc,并将示例作为 .Net DLL 和 Java 层之间的桥梁。这是 C# 代码:

为了成功构建它,我添加了以下引用:

  • System.Windows.Forms
  • 动态DotNetTWAIN

然后输入命令

生成MyCSharpDemoCalc.j4n.jarMyCSharpDemoCalc.j4n.dll

现在,我可以导入 DynamicDotNetTWAIN.dll、MyCSharpDemoCalc.j4n.dll、jni4net.n.w64.v20-0.8.6.0.dll、jni4net.n-0.8.6.0.dll、jni4net.j-0.8.6.0.jar 和 MyCSharpDemoCalc .j4n.jar 到 Java 项目。

Java代码:

当我尝试运行该应用程序时,它崩溃了

Bridge.LoadAndRegisterAssemblyFrom(new java.io.File("MyCSharpDemoCalc.j4n.dll"));

我该如何解决?谢谢!

0 投票
0 回答
453 浏览

java - 带有自定义 Java 类或 Jar 的 Jni4net

我看到了很多关于如何在 .NET 中使用原始 Java 类的示例,但是如何在 .NET 中使用我自己的 Jar?到目前为止,我可以通过反射来做到这一点,但是因为我有一个带有参数 File[] 和 String[] 的方法,而 jni4net 没有这个类的定义(即 File[].class),我不能调用它们。

我找不到有关如何执行此操作的分步教程。我尝试使用 generateProxies.cmd,但仍然无法使其工作。

非常感谢

0 投票
2 回答
1153 浏览

java - 使用 Jni4net 运行 Bridge.LoadAndRegisterAssemblyFrom(File arg0) 时出现 System.IO.FileNotFoundException

我正在尝试制作一个 Jni4net 程序来充当 Java 数据库和 C# 应用程序之间的桥梁。在做了一些 Jni4net 附带的示例之后,我尝试按照本指南进行操作。在他的程序运行时彻底遵循它之后,我得到了错误:

System.IO.FileNotFoundException

我用代码尝试了不同的东西几个小时,但没有进展。这是代码,我认为我的方法没有任何问题,文件TestOne.j4n.dll确实在 location 下FourthTest/TestOne.j4n.dll。这是Bridge.LoadAndRegisterAssemblyFrom给我错误的方法。

编辑:

我得到的完整错误消息是(瑞典语中的某些部分)

0 投票
1 回答
168 浏览

java - 使用 nunit 使用 jni4net 桥接代码运行测试

我正在为使用 jni4net 将 java 组件桥接到 C# 的项目编写一些测试。我可以使用 resharper 毫无问题地运行测试,但 nunit 似乎无法找到所需的 jar

错误发生在DriverManager.getConnection()查找位于给定路径中的 jdbc 驱动程序时~/bin/lib

0 投票
1 回答
1142 浏览

java - java.lang.String 不能转换为 system.Object

我使用 JNI4NET 框架从 Java 调用 .Net 代码。JNI4NET 为 .Net 代码生成了代理类。其中一种方法接受 system.Object 作为输入参数。

我想发送字符串值作为该方法的输入。我为此编写了以下代码-

并将这个 obj 作为输入传递给代理方法。上述代码抛出运行时异常 java.lang.String cannot be cast to system.Object。任何帮助或指示都会很有用。