如何用Java中的第三方dll调用C#方法?

时间:2015-06-06 20:10:43

标签: java c# dll

我有一个用C#编写的third party dll文件。它有一些名为TaskService,TaskDefinition,TaskScheduler的对象。这些类还有一些我想从java调用的方法和成员变量。我怎么能这样做?

假设我有以下C#代码。那我怎么能用Java转换那段代码呢?

TaskService taskService = new TaskService();
TaskDefinition taskDefinition = taskService.NewTask();
taskDefinition.RegistrationInfo.Description = "MyAPP Skip UAC";
taskDefinition.Triggers.Add(new Microsoft.Win32.TaskScheduler.LogonTrigger() { UserId = WindowsIdentity.GetCurrent().Name });
taskDefinition.Actions.Add(new Microsoft.Win32.TaskScheduler.ExecAction() {     Path = Application.ExecutablePath.ToString().ToLower() });
taskDefinition.Principal.RunLevel = TaskRunLevel.Highest;
taskService.RootFolder.RegisterTaskDefinition("MyAppSkipUAC",taskDefinition);

我已经google了很多但是找不到合适的方法来实现它或任何代码片段。我得到的只是从Java调用C / C ++ dll并调用c#方法。我对任何类型的os解决方案持开放态度。任何第三方库或JNA / JNI方法都可以。

1 个答案:

答案 0 :(得分:0)

<强> JNIforNET

我会使用jni4net库: https://github.com/jni4net

我从未使用它,但是从wiki看起来它自动创建代理到/从java到/从C#允许你从java调用dll。它建立在JNI之上,基本上为您编写C / C ++。

希望这有帮助。