2011-09-20 163 views
0

我想運行一個名爲udpprobe.client的程序包中的java程序,但我無法運行程序。它彙編所有的好,但然後我得到的錯誤:無法在mac上運行java程序

Exception in thread "main" java.lang.NoClassDefFoundError: UDPClient (wrong name: udpprobe/client/UDPClient) 
    at java.lang.ClassLoader.defineClass1(Native Method) 
    at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631) 
    at java.lang.ClassLoader.defineClass(ClassLoader.java:615) 
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) 
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:283) 
    at java.net.URLClassLoader.access$000(URLClassLoader.java:58) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:197) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 

有人可以幫助我設置類路徑的東西。我正在開發一個mac。 謝謝

回答

2

當您嘗試從類文件所在的目錄中啓動程序時,通常會發生此錯誤,而不是該軟件包的基礎。

在你的情況,你有一個目錄:

/some/path/to/udpprobe/client/

有了:

UDPClient.class

文件,也可能是:

UDPClient.java

文件。你會得到這個錯誤,如果你UDPClient.java指定包udpprobe.client,並嘗試從它自己的目錄如下執行:

/some/path/to/udpprobe/client$ java UDPClient

但是,如果你去包的基本目錄並執行完全合格的名稱,它應該工作:

/some/path/to$ java udpprobe.client.UDPClient