Java 呼叫c++;不改变c++;代码

Java 呼叫c++;不改变c++;代码,java,c++,java-native-interface,Java,C++,Java Native Interface,我想在java程序中使用一些.cpp类和方法。例如,我有调用method1的p1.java方法1可在p2.cpp和p2.cpp中找到。cpp包括p3.cpp。我不想更改cpp代码 可能吗?(我需要.cpp和.header两者。) 还有其他更好的解决方案吗?(除了java本地接口)?< /p> 为什么不在java和C++之间用JNI创建一个额外的层? method1_java_cpp_layer( JNIEnv * e, jobject o ) { extracted_informatio

我想在java程序中使用一些
.cpp
类和方法。例如,我有调用
method1
p1.java
<代码>方法1可在
p2.cpp
p2.cpp
中找到。cpp包括
p3.cpp
。我不想更改cpp代码

可能吗?(我需要
.cpp
.header
两者。)


还有其他更好的解决方案吗?(除了java本地接口)?< /p> 为什么不在java和C++之间用JNI创建一个额外的层?
method1_java_cpp_layer( JNIEnv * e, jobject o )
{
    extracted_information = extract_information( e, o );
    method1( extracted_information )
}

这进入了“javaycpp.Leop.CPP”。

为什么不在java和C++之间创建一个与JNI的额外层——有效地创建:

method1_java_cpp_layer( JNIEnv * e, jobject o )
{
    extracted_information = extract_information( e, o );
    method1( extracted_information )
}

这将进入“java_cpp_layer.cpp”

Thank's。我做到了。但现在当我运行程序(java java_cpp_层)时,我得到了另一个错误:libjava_cpp_层。所以:未定义的符号:p2…你能帮我吗?谢谢。我做到了。但现在当我运行程序(java java_cpp_层)时,我得到了另一个错误:libjava_cpp_层。所以:未定义的符号:p2…你能帮我吗?