2010-08-15 60 views
0

我試圖利用一個Java API的谷歌語音(點擊此處下載:http://code.google.com/p/google-voice-java/),谷歌語音Java的1.6.jar和json.jar導入Java類

我的程序沒有找到.jar文件進行導入。我確定我的類路徑指向包含jar文件的目錄。

我的代碼下面不使用任何GV類,我只是試圖導入它們。我究竟做錯了什麼?標準的java類導入正常。

import java.io.BufferedReader; 
import java.io.IOException; 
import java.io.InputStream; 
import java.io.InputStreamReader; 
import java.util.ArrayList; 
import java.util.Iterator; 
import java.util.List; 
import java.util.Properties; 

import gvjava.org.json.JSONException; 
import gvjava.org.json.JSONObject; 

import com.techventus.server.voice.Voice; 
import com.techventus.server.voice.datatypes.AllSettings; 
import com.techventus.server.voice.datatypes.DisabledForwardingId; 
import com.techventus.server.voice.datatypes.Group; 
import com.techventus.server.voice.datatypes.Phone; 
import com.techventus.server.voice.datatypes.Greeting; 
import com.techventus.server.voice.exception.CaptchaRequiredException; 
import com.techventus.server.voice.util.ParsingUtil; 

@SuppressWarnings("deprecation") 


class hello { 

static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 
static String pass = null; 

public static void main(String args[]) 

    { 
System.out.println("Enter Your name:"); 

{ 

try { 
      pass = br.readLine(); } 

    catch (IOException ioe) { 
     System.out.println("IO error trying to read input!"); 
     System.exit(1); } 


    System.out.println(pass); 

    } 
} 
} 

我在debian sid下使用了java 6。我也在從命令行工作。我在我的.bashrc中將我的classpath設置爲一個環境變量。我的罐子在〜/ java/classes目錄下。我的源代碼在〜/ JAVA

java $ javac -cp ./classes/* hello.java 
javac: invalid flag: ./classes/json.jar 
Usage: javac <options> <source files> 

如果我註釋掉json.jar代碼運行正常兩個進口,所以感謝所有的類路徑的提示。

使用-cp「./classes/*」固定工作。

+0

請說明你是如何確定libs在類路徑上的。有很多陷阱... – 2010-08-15 15:42:19

+0

「我的程序沒有找到導入的jar文件」。你的意思是你的*編譯器*不是?你在使用哪種IDE /編譯器?你如何告訴你的IDE /編譯器關於罐子? – meriton 2010-08-15 15:45:22

回答

2

你使用任何IDE或在命令行編譯程序?在任何情況下,將類路徑設置爲包含JAR文件的目錄都不起作用。您必須確保您的類路徑分別列出所有JAR文件。例如。

java -cp your/dir/of/jars pkg.Main // won't work in Java 5 and below 

java -cp your/dir/of/jars/first.jar;your/dir/of/jars/second.jar pkg.Main // works 

如果您使用的是Java 6,則可以使用classpath通配符來解決相同的問題。

java -cp your/dir/of/jars/* pkg.Main // works in Java 6 

相關主題:How to use a wildcard in the classpath to add multiple jars?

0

如果你確信你已經適當地包括你的jar文件,嘗試清潔和構建應用和部署,背部裝有過類似的經歷,其中在一切似乎都正常,但我沒有清理並重新構建應用程序。

爲我工作,但我不確定。