Java Android与Mathematica连接失败-与JLink
我需要一些关于将Mathematica与Android应用程序(在Android Studio中,OS:Windows 7)和JLink库连接的帮助。到目前为止,我编写的代码如下:Java Android与Mathematica连接失败-与JLink,java,android,android-studio,wolfram-mathematica,remote-access,Java,Android,Android Studio,Wolfram Mathematica,Remote Access,我需要一些关于将Mathematica与Android应用程序(在Android Studio中,OS:Windows 7)和JLink库连接的帮助。到目前为止,我编写的代码如下: package user.lab; import android.content.Intent; import android.os.Bundle; import android.support.v7.app.ActionBarActivity; import android.util.Log; import an
package user.lab;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import com.wolfram.jlink.*;
public class A1 extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_a);
KernelLink ml = null;
String argv = "-linkmode launch -linkname \"C:/Program Files/Wolfram Research/Mathematica/10.4/MathKernel.exe\"";
String jLinkDir = "C:/Program Files/Wolfram Research/Mathematica/10.4/MathKernel.exe";
System.setProperty("com.wolfram.jlink.libdir", jLinkDir);
System.out.println("OK1 ");
try {
ml = MathLinkFactory.createKernelLink(argv);
System.out.println("OK ");
} catch (MathLinkException e) {
System.out.println("Fatal error opening link: " + e.getMessage());
return;
}
try {
// Get rid of the initial InputNamePacket the kernel will send
// when it is launched.
ml.discardAnswer();
ml.evaluate("<<MyPackage.m");
ml.discardAnswer();
ml.evaluate("2+2");
ml.waitForAnswer();
int result = ml.getInteger();
System.out.println("2 + 2 = " + result);
// Here's how to send the same input, but not as a string:
ml.putFunction("EvaluatePacket", 1);
ml.putFunction("Plus", 2);
ml.put(3);
ml.put(3);
ml.endPacket();
ml.waitForAnswer();
result = ml.getInteger();
System.out.println("3 + 3 = " + result);
String strResult = ml.evaluateToOutputForm("4+4", 0);
System.out.println("4 + 4 = " + strResult);
} catch (MathLinkException e) {
System.out.println("MathLinkException occurred: " + e.getMessage());
} finally {
ml.close();
}
}
}
我已将JLink环境变量设置如下:
姓名:JLINK_LIB_DIR
变量:C:\Program Files\Wolfram Research\Mathematica\10.4\SystemFiles\Links\JLink\SystemFiles\Libraries\Windows
我还将JLink.jar文件连接到了Android Studio。我能做些什么来纠正这个问题?你能帮帮我吗 我对Java知之甚少,对Android/Dalvik更是知之甚少。。。但我知道J/Link使用本机代码共享库来使用MathLink。这些在“普通Java和Android”之间兼容吗?我在许多页面上读到这些兼容。现在,我不知道我的代码是否有问题。我对Java知之甚少,对Android/Dalvik更是知之甚少……但我知道J/Link使用本机代码共享库来使用MathLink。它们之间兼容吗普通的Java和Android?我在很多页面上读到它们是兼容的。现在,我不知道我的代码是否有问题。
Trying to load lib C:/Program Files/Wolfram Research/Mathematica/10.4/MathKernel.exe/libJLinkNativeLibrary.so 0x423c6aa0
09-14 17:38:06.581 3365-3365/user.lab E/dalvikvm﹕ dlopen("C:/Program Files/Wolfram Research/Mathematica/10.4/MathKernel.exe/libJLinkNativeLibrary.so") failed: dlopen failed: library "C:/Program Files/Wolfram Research/Mathematica/10.4/MathKernel.exe/libJLinkNativeLibrary.so" not found
09-14 17:38:06.581 3365-3365/user.lab D/dalvikvm﹕ Trying to load lib C:/Program Files/Wolfram Research/Mathematica/10.4/MathKernel.exe/SystemFiles/Libraries//libJLinkNativeLibrary.so 0x423c6aa0
09-14 17:38:06.581 3365-3365/user.lab E/dalvikvm﹕ dlopen("C:/Program Files/Wolfram Research/Mathematica/10.4/MathKernel.exe/SystemFiles/Libraries//libJLinkNativeLibrary.so") failed: dlopen failed: library "C:/Program Files/Wolfram Research/Mathematica/10.4/MathKernel.exe/SystemFiles/Libraries//libJLinkNativeLibrary.so" not found
09-14 17:38:06.606 3365-3365/user.lab W/System.err﹕ Fatal error: cannot find the required native library named JLinkNativeLibrary.