-->

Matlab and Java integration

2020-03-04 07:14发布

问题:

I have done image processing in MATLAB and build my GUI in Java. I want to integrate MATLAB into Java. I want to use MATLAB Builder for this purpose. I want also to use neural network for classification. There are some excel files also. Is it possible that this code will be integrated in Java?

My other question is that I want used MATLAB BuilderJA to know how it works. When I type java -version command, it gave me this error.

??? Attempt to execute SCRIPT java as a function:
C:\Program Files\MATLAB\R2009b\toolbox\matlab\general\java.m
 C:\Program Files\Java\jdk1.6.0_21

When I use build command it gave me this error.

'javac' is not recognized as an internal or external command,
operable program or batch file.
Error: An error occurred while shelling out to javac (error code = 1).
Unable to build executable.

I have JDK installed. The path is C:\Program Files\Java\jdk1.6.0_21. I am using R2009b version

I want to run my code in Java, but I do not know how to fix this error. Can any one tell me how to resolve this error?

回答1:

The first error message which you get when you type java -version is a bit misleading; instead of

java -version

you need to say

!java -version

since you want to call an external program and not a MATLAB script or function. As stated in the comments by Amro this will only work if the directory containing java.exe is on your path. See Running External Programs in the MATLAB help for more info.

The error message you get comes from the fact that

  • there happens to be a file java.m and MATLAB thinks you are trying to call this file
  • that file only contains comments, since java is actually a sort of keyword in MATLAB, see doc java.
  • MATLAB realizes that you are not using the keyword in its correct form (which would be to call java.something to create an object of class something) since you give a parameter
  • MATLAB ends up telling you in a strange way that java doesn't accept parameters (even though java.m does not contain the script, only its documentation)

Note that if you don't want to add the directory containing java.exe and javac.exe to the path, you could also try calling them with their full path name:

!C:\Program Files\Java\jdk1.6.0_21\blablabla\bin\javac.exe