在Matlab环境中运行Java代码的步骤?

时间:2012-02-21 06:36:41

标签: java matlab apache-commons

我想在Matlab中运行下面的Java代码。 它在JAVA环境中成功运行。 我正在使用

  

Apache的雅加达公地净1.4.1.jar

运行此代码。

我使用的软件是

MATLAB Version 7.7.0.471 (R2008b)
Operating System: Microsoft Windows Vista Version 6.1 (Build 7600)
Java VM Version: Java 1.6.0_04 with Sun Microsystems Inc. 
     Java HotSpot(TM) Client VM  mixed mode

我的java代码是

import java.io.IOException;
import org.apache.commons.net.TimeTCPClient;// third party class
public final class TimeClient
{

public static final void timeTCP(String host) throws IOException
{
TimeTCPClient client = new TimeTCPClient();
try {
// We want to timeout if a response takes longer than 4 seconds
client.setDefaultTimeout(4000);
client.connect(host);
System.out.println(client.getDate());
}
finally {
client.disconnect();
}
}

public static final void main(String[] args)
{
{
try
{
timeTCP(args[0]);
}
catch (IOException e)
{
e.printStackTrace();
System.exit(1);
}
}

}

}

which timeclient发出以下错误

Warning: A Java exception occurred trying to load the TimeClient class:
Java exception occurred:
java.lang.UnsupportedClassVersionError: TimeClient : Unsupported major.minor
version 51.0

    at java.lang.ClassLoader.defineClass1(Native Method)

    at java.lang.ClassLoader.defineClass(Unknown Source)

    at java.security.SecureClassLoader.defineClass(Unknown Source)

    at java.net.URLClassLoader.defineClass(Unknown Source)

    at java.net.URLClassLoader.access$000(Unknown Source)

    at java.net.URLClassLoader$1.run(Unknown Source)

    at java.security.AccessController.doPrivileged(Native Method)

    at java.net.URLClassLoader.findClass(Unknown Source)

    at java.lang.ClassLoader.loadClass(Unknown Source)

    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)

    at java.lang.ClassLoader.loadClass(Unknown Source)

    at java.lang.ClassLoader.loadClassInternal(Unknown Source)

    at java.lang.Class.forName0(Native Method)

    at java.lang.Class.forName(Unknown Source)

    at
    com.mathworks.jmi.OpaqueJavaInterface.findClass(OpaqueJavaInterface.java:470) 
'TimeClient' not found.

1 个答案:

答案 0 :(得分:3)

MATLAB显然使用的是与您用来编译.jar的Java版本不同的Java版本。确保使用MATLAB中使用的Java版本进行编译。由于您没有说明如何确定问题中给出的Java版本号,请确保调用

version -java
从Matlab命令提示符

,然后使用该版本编译.jar。可以找到更多信息here