2012-05-25 162 views
0

我的程序在package pl.edu.uj.tcs.crazySocket;由於一些要求。我在crazySocket目錄中工作。爲了編譯程序我使用命令java運行良好,'絕對'路徑,不運行CLASSPATH指定

CLASSPATH=~/prog/colosseum/data javac tictactoe.java 

並且成功。我想運行該程序。我將javac更改爲java並刪除'.java'。我得到

Exception in thread "main" java.lang.NoClassDefFoundError: tictactoe 
Caused by: java.lang.ClassNotFoundException: tictactoe 
     at java.net.URLClassLoader$1.run(URLClassLoader.java:217) 
     at java.security.AccessController.doPrivileged(Native Method) 
     at java.net.URLClassLoader.findClass(URLClassLoader.java:205) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:321) 
     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:266) 

當我在樹目錄到〜/ PROG /鬥獸場/數據獲取和運行java pl/edu/uj/tcs/crazySocket/tictactoe一切工作正常。

CLASSPATH有什麼問題?它不應該與javac和java一起工作嗎?

回答

1

你的類路徑沒有問題,這是你撥打java這是錯誤的。

需要來指定全限定類名pl.edu.uj.tcs.crazySocket.tictactoe

+0

你是說我必須從基本目錄運行程序?我無法單獨在crazySocket目錄中工作? –

+0

不,你可以從任何你想要的地方工作。但是,您的_always_(無論您身在何處)需要將完整的合格類名稱傳遞給'java'。 – Mat

相關問題