我在Windows 10上使用Octave 4.2.1。当我输入Octave控制台时:
>> __have_feature__ JAVA
ans = 1
因此启用了java。在Windows上使用命令提示符我发现我有java版本“1.1.0_71”。所以java存在并运行。 但是当我尝试在Octave中调用java函数时,我得到:
cp = javaclasspath
error: unable to find Java Runtime Environment: software\javasoft\java runtime environment::Currentversion
当我输入'java -version'时:
>> java -version
error: 'java' undefined near line 1 column 1
我检查了java的环境变量:
>> getenv JAVA_HOME
ans = C:\Program Files\Java\jdk1.7.0_71
再次,这看起来很好。最后我甚至尝试从头开始安装Octave,但这并没有解决问题。我的猜测是它与'software \ javasoft \ java运行时环境:: CurrentVersion'有关,但我无法弄清楚它是什么。
答案 0 :(得分:2)
这可能与Octave和您的JRE的位数差异有关。 This post raises同样的问题。通过使Octave位与JRE位相符合来解决这个问题。确保您的Octave安装是64位。
答案 1 :(得分:0)
我想您运行的是64位版本的Octave,而您拥有的是64位版本的JDK 11.0.5
在文件octave.vbs
中写在行后
Set wshShell = CreateObject( "WScript.Shell" )
线
wshShell.Environment("SYSTEM")("JAVA_HOME") = "c:\program files\java\jdk-11.0.5"
然后将以下注册表行与您的注册表合并
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment]
"CurrentVersion"="11.0.5"
[HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\11.0.5]
"JavaHome"="C:\\Program Files\\Java\\jdk-11.0.5"
"RuntimeLib"="C:\\Program Files\\Java\\jdk-11.0.5\\bin\\client\\jvm.dll"