using System;public class Test{ public Test(){} public String ping(){ return "C# is here."; }}
然后使用以下命令进行编译:
csc.exe /target:module Test.cs
您可以
csc.exe在.NET framework的安装路径中找到。之后,创建java文件:
public class Test{ public native String ping(); public static void main(String[] args){ System.load("/path/to/dll"); System.out.println("Java is running."); Test t = new Test(); System.out.println("Trying to catch C# " + r.ping()); }}
javac Test.java这会产生一个
Test.class。
javah -jni Test这将生成一个
Test.h文件,该文件将包含在C ++代码中。
之后,我们需要创建我们的C ++文件:
#include "stdafx.h"#include "JAVA/Test.h"#include "MCPP/Test.h"#pragma once#using <mscorlib.dll>#using "Test.netmodule"JNIEXPORT jstring JNICALL Java_Test_ping(JNIEnv *env, jobject obj){ Test^ t = gcnew Test(); String^ ping = t->ping(); char* str = static_cast<char*>((System::Runtime::InteropServices::Marshal::StringToHGlobalAnsi(ping)).ToPointer()); char cap[128]; strcpy_s(cap, str); return env->NewStringUTF(cap);}
最后:
c:>java Test
我希望这可以帮助你。在Java中使用函数C#的基本示例。
资料来源:https :
//www.quora.com/How-common-is-the-problem-of-calling-C-methods-from-Java-Do-
many-developers-come-across-such-necessity
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)