【发布时间】:2015-03-06 15:21:02
【问题描述】:
我正在尝试使用 Library Compiler(java 包)中的 javac 从 Matlab 代码中提取 jar 文件。
我已将JAVA_HOME 设置为:
C:\Program Files\Java\jdk1.7.0_71
并添加到PATH:
C:\Program Files\Java\jdk1.7.0_71\bin。
当我在控制台中输入java -version 时,我得到java version jdk1.7.0_71 并运行javac -version 显示jdk1.7.0_71。
但是,matlab 似乎找不到 javac,因此,我无法将我的 .m 代码编译成 .jar 文件。当我尝试编译 .m 代码时,我得到以下信息:
Error: An error occurred while shelling out to javac (error code = -1).
Unable to build executable.
Executing command: ""C:\Program Files\Java\Java\jdk1.7.0_11\bin\javac" -verbose - classpath "...\MATLAB\R2014a\toolbox\javabuilder\jar\javabuilder.jar" -d "...\features_extraction\for_testing\classes" "...\features_extraction\for_testing\features_extraction\Class1.java" "...\features_extraction\for_testing\features_extraction\Features_extractionMCRFactory.java" "...\for_testing\features_extraction\Class1Remote.java" "...\for_testing\features_extraction\package-info.java""
这是我的 java bin 文件夹的目录,javac.exe 存在:...\Java\jdk1.7.0_71\bin\bin\javac?我找到了这个链接,用于 Java 和 Matlab2014a(这是我的版本)here 之间的兼容性。为了将 Matlab 正确链接到 Java,我应该检查什么?几天前,Matlab 可以在 Java 中正常工作。
在我的PATH 中,我注意到存在以下路径:C:\ProgramData\Oracle\Java\javapath,其中存在三个错误的 java.exe、javac.exe 和 javax.exe 快捷方式。当我输入 matlab 控制台 getenv JAVA_HOME 时,我得到 C:\Program Files\Java\jdk1.7.0_11,而当我写 version -java 时,我得到:Java 1.7.0_11-b21 with Oracle Corporation Java HotSpot(TM) 64-Bit Server VM mixed mode。当我在 matlab 控制台中写 javac 时,我得到:Undefined function or variable 'javac'.
当我尝试构建 C++ 库时,我遇到了类似的问题:错误:对 mbuild 进行脱壳时发生错误(错误代码 = -1)。 无法构建可执行文件。
编辑:在我的情况下,没有正确的 MCR 算吗?
【问题讨论】:
-
您使用的是 Windows 7 64 位吗?
-
是的,我已经安装了jdk-7u71-windows-x64版本的java。
-
MATLAB 命令行窗口中
version -java的输出是什么? -
Java 1.7.0_11-b21 与 Oracle Corporation Java HotSpot(TM) 64 位服务器 VM 混合模式。嗯,但是我无法在我的路径中找到它。
-
您是否检查过是否有权写入生成输出的目录?