好吧,這是在windows上工作。我的Java應用程序正在運行並正常運行在Unix中編譯和運行java(來自Windows)
javac -classpath .;ojdbc14.jar -g foo.java
java -classpath .;ojdbc14.jar foo
然而,當我做在Unix同樣的事情,我得到這個錯誤: ojdbc14.jar的:沒有發現
我在做什麼錯?我知道「;」告訴我的shell說ojdbc14.jar是一個新的命令,但我不知道如何解決這個問題。
好吧,這是在windows上工作。我的Java應用程序正在運行並正常運行在Unix中編譯和運行java(來自Windows)
javac -classpath .;ojdbc14.jar -g foo.java
java -classpath .;ojdbc14.jar foo
然而,當我做在Unix同樣的事情,我得到這個錯誤: ojdbc14.jar的:沒有發現
我在做什麼錯?我知道「;」告訴我的shell說ojdbc14.jar是一個新的命令,但我不知道如何解決這個問題。
使用冒號(「:」)而不是分號(「;」)。
見Setting the class path (Solaris and Linux) VS Setting the class path (Windows)
javac -classpath '.;ojdbc14.jar' -g foo.java
java -classpath '.;ojdbc14.jar' foo
最終的解決方案是:
javac -classpath .:ojdbc14.jar -g foo.java
java -classpath .:ojdbc14.jar foo
注意:使用;刪除我得到的初始錯誤信息,但導致了 '將ojdbc14.jar。'以下errro:
Exception in thread "main" java.lang.NoClassDefFoundError: foo
使用螞蟻,或甚至更好地使用螞蟻與交流像Hudson這樣的連續構建環境和像SVN這樣的SCM。
好的,你說得對,單引號會阻止shell解釋「;」作爲命令分隔符,但是Unix java不會理解「;」在類路徑中。 – 2008-11-26 20:56:04
-1在Linux上爲分號 – orip 2008-11-26 21:11:04