2012-02-21 71 views
1

我想在Matlab中運行下面的Java代碼。 它在JAVA環境中成功運行。 我使用在Matlab環境下運行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. 
+0

也許你還需要包名稱來解決你的課程。它是什麼? – bdecaf 2012-02-21 07:04:56

+0

請幫我一步。詳細請 – shree 2012-02-21 07:17:43

+0

你的代碼中沒有包裝行 - 可能你省略了它?也許有所幫助:http://en.wikipedia.org/wiki/Java_package – bdecaf 2012-02-21 07:22:05

回答

3

MATLAB顯然是使用來自不同的Java版本一個你用來編譯你的.jar。確保使用MATLAB內部使用的Java版本進行編譯。既然你沒有說明你是如何確定你的問題給出了Java版本號,請確保您撥打

version -java 
從MATLAB命令提示符

,然後使用該版本編譯您.jar。更多信息可以發現here

+0

喬納斯Java虛擬機版本:1.6的Java .0_04與Sun微系統公司的Java 熱點(TM)客戶端虛擬機混合模式 – shree 2012-02-21 14:53:03

+0

我會嘗試你的建議 – shree 2012-02-21 14:53:56

+0

我安裝了Java 1.6.0_04和現在沒有錯誤與**這Timeclient **。請指引我要進一步步驟來運行此代碼感謝您的努力和及時回覆。 – shree 2012-02-21 18:38:29