我有一个用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方法都可以。
最佳答案
JNIforNET
我会使用jni4net库:
https://github.com/jni4net
我从未使用过它,但是从Wiki看来,它会自动创建到Java的代理(从Java到C#的代理),从而允许您从Java调用dll。它建立在JNI之上,并且基本上为您编写C / C ++。
希望这可以帮助。