2012-01-18 73 views
1

我運行Ubuntu 11.10,並且已經安裝JDK-6u30-Linux的i586.bin,而 並有一個目錄/usr/local/jdk1.6.0_30和一切工作 和編譯即使沒有CLASSPATH,只要我有 export PATH =/usr/local/jdk1.6.0_30/bin:$ PATH在我的〜/ .bashrc中 並從一個全新的shell執行java(不知道爲什麼沒有 CLASSPATH在我的環境中是需要的)。設置CLASSPATH但Java編譯器不能找到類文件

現在我嘗試使用下面的類庫: http://code.google.com/p/google-api-java-client/downloads/list google-api-java-client-1.6.0-beta.zip

我下載並提取zip文件到在/ usr /本地/ google目錄 現在包含所有的jar文件。然後我嘗試從http://code.google.com/p/google-api-java-client/wiki/ClientLogin

$的javac -cp在/ usr /本地/谷歌BigQuerySample.java

編譯BigQuerySample 和獲取:

BigQuerySample.java:1:包com.google。 api.client.googleapis不存在 import com.google.api.client.googleapis。*;

等等除了java.io. *之外的所有導入包;

我知道這應該是一個簡單的類路徑問題,但在命令行或與出口CLASSPATH = $ CLASSPATH環境調整的classpath :在/ usr /本地/谷歌 沒有擺脫錯誤的。我已經爲每個jar文件嘗試了jar -tvf * jar文件,並且有東西在那裏,那麼爲什麼java編譯器沒有找到包含文件?

感謝,

約翰Goche的

回答

1

你可以試試這個:

javac -Djava.ext.dirs=/usr/local/google BigQuerySample.java 
+0

嗨,這工作儘可能從抱怨的抱怨去,但仍然有Java編譯器無法找到的符號,如GoogleTransport,JSONCParser等... – johngoche9999 2012-01-18 17:28:07

+0

我不確定是否已經下載了所有需要的庫。你可以檢查所有的庫是否在這個目錄下,包括GoogleTransport等。如果你想運行這個應用程序,你還需要設置選項:java -Djava.ext.dirs = ... – Qinghao 2012-01-18 17:35:35

1

您必須明確指定所有引用的JAR文件。

javac -cp /usr/local/google/file1.jar:/usr/local/google/file2.jar:. BigQuerySample.java 

同樣的事情,運行時...

java -cp /usr/local/google/file1.jar:/usr/local/google/file2.jar:. BigQuerySample 
2

您需要的罐子添加到您的類路徑是這樣的:

javac -cp "$CLASSPATH:/usr/local/google/google-api-client-1.6.0-beta.jar" BigQuerySample.java 

或者使用wildcard添加所有罐子:

javac -cp "$CLASSPATH:/usr/local/google/*:/usr/local/google/dependencies/*" BigQuerySample.java 
+0

謝謝,不幸的是一些類從示例沒有在jar文件中定義,這意味着該示例是不好的。我已經檢查過它:因爲我在* jar; /usr/local/jdk1.6.0_30/bin/jar -tvf $ i >> out;完成但沒有跟蹤GoogleTransport類。 – johngoche9999 2012-01-18 17:41:43

+0

'ClientLogin' API是傳統的。我相信你現在需要使用'OAuth'。看看你能否找到更新的例子。 – dogbane 2012-01-18 17:50:57

1

在classpath中包含jar時,要麼具體指明jar包含或使用通配符將所有jar包括在目錄中。因此,對於你例如,你可以使用:

javac -cp /usr/local/google/google-api.jar BigQuerySample.java 

javac -cp /usr/local/google/* BigQuerySample.java 

對於使用包括罐子在classpath中更多的幫助,請參閱本post