私は、JavaコードがJNIを通じてC++コードを呼び出すことができることを知っています。しかし、JavaコードをJNIや他の方法でC++から呼び出すことは可能ですか?C++がJavaコードを呼び出すことはできますか?
8
A
答えて
10
もちろん可能です。ここでは例です:
public class InvocationHelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
System.out.println("Arguments sent to this program:");
if (args.length == 0) {
System.out.println("(None)");
} else {
for (int i=0; i<args.length; i++) {
System.out.print(args[i] + " ");
}
System.out.println();
}
}
}
そしてHERESにそれを使用するいくつかのC++:
void invoke_class(JNIEnv* env) {
jclass helloWorldClass;
jmethodID mainMethod;
jobjectArray applicationArgs;
jstring applicationArg0;
helloWorldClass = (env)->FindClass("InvocationHelloWorld");
if(! helloWorldClass)
{
std::cerr<<"Couldn't get \"InvocationHelloWorld\""<<std::endl;
return;
}
mainMethod = (env)->GetStaticMethodID(helloWorldClass, "main", "([Ljava/lang/String;)V");
if(! mainMethod)
{
std::cerr<<"Coulnd't get \"InvocationHelloWorld::main\""<<std::endl;
return;
}
applicationArgs = (env)->NewObjectArray(1, (env)->FindClass("java/lang/String"), NULL);
applicationArg0 = (env)->NewStringUTF("From-C-program");
(env)->SetObjectArrayElement(applicationArgs, 0, applicationArg0);
(env)->CallStaticVoidMethod(helloWorldClass, mainMethod, applicationArgs);
}
+0
完璧、ありがとう:-) –
4
ます。また、自動的にJNIファイルを生成するためにSWIGを使用することができます
ここではjavaファイルです。セットアップは少し注意が必要ですが、あなたは
関連する問題
- 1. C#からC++コードを呼び出すことはできますか?
- 2. C++からclojureコードを呼び出すことはできますか?
- 3. Javaでprintlnを呼び出すことはできますか?
- 4. JNIが呼び出すCプログラムからC関数を呼び出すことはできますか?
- 5. C#でオブジェクトを呼び出すことはできますか?
- 6. Windowsでdllコードを生成したり、C++/C#でgolangコードを呼び出すことができますか?
- 7. CのJavaコードを呼び出す
- 8. LinuxでJavaコードからC関数を呼び出すには
- 9. C DLLからC#DLLを呼び出すことはできますか?
- 10. NERスタンフォードはJavaファイルを呼び出すことができますか?
- 11. マクロはプリプロセッサコマンドを呼び出すことができますか?
- 12. 私はプライベートメソッドを呼び出すことができますか?
- 13. ラムダがアレクスキルを呼び出すことはできますか?
- 14. プログラム(DLL)から呼び出すことができるC++コンパイラ
- 15. DUnit GUITestrunnerのコードからToolsAPIを呼び出すことはできますか?
- 16. コードからASP.NET RegSQLを呼び出すことはできますか?
- 17. コンストラクタはC++で別のコンストラクタを呼び出すことはできますか?
- 18. java -jar myjar.jarからjythonスクリプトを呼び出すことはできますか?
- 19. Javaからwso2メッセージブローカーAPIを呼び出すことはできますか?
- 20. htmlテキストボックスからjava関数を呼び出すことはできますか?
- 21. Javaクラスからアンドロイドクラスを呼び出すことはできますか?
- 22. C#コードでC++ dllを呼び出す
- 23. PropertyUtils.copyPropertiesはいつ呼び出すことができますか?
- 24. JPA(JAVA)経由でストアドファンクションを呼び出すことはできますか?
- 25. JavaでWindowsのcmdコマンドを呼び出すことはできますか?
- 26. JPQLで静的Javaメソッドを呼び出すことはできますか
- 27. C++システムコールでtskillを呼び出すことができない
- 28. Wicket Javaクラスからhtml idsを呼び出すことができます
- 29. クラスのメンバーをC++でテンプレートで呼び出すことはできますか?
- 30. フレックスアプリケーションでJavaからwebserviceを呼び出すことができません
を公開するためにC++コードの多くを持っているとき、それは私がダンブルドアは、私は彼がもので、ウィザードの聞くプログラミング:) –
を気に入って知りませんでした非常に便利です! – Luminously
@Luminously彼のコードを見ました。それは魔法です。 – mcfinnigan