2013-07-30 42 views
0

我正在研究IBM的快速文件API。現在我是前端開發人員,對Java不太瞭解。實現Java API示例代碼

我想知道我怎麼能實現一些他們的developers website提供的示例代碼:這裏是樣本代碼之一:

下面是如何使用的例子獲取用戶列表的API。此Java程序獲取使用REST請求的用戶列表,將結果解析爲正則表達式,然後將總用戶數打印到控制檯。

import java.io.InputStream; 
import java.net.HttpURLConnection; 
import java.net.URL; 
import org.apache.commons.codec.binary.Base64; 


public class QuickFileUserCount { 
    public static void main(String[] args) { 
    try { 
    if (args.length < 4) { 
     System.out.println("Usage is java QuickFileUserCount <host> <port> <userid> <password>"); 
     System.exit(0); 
    } 
    String quickFileServer = args[0]; 
    String quickFilePort  = args[1]; 
    String quickFileUser  = args[2]; 
    String quickFilePassword = args[3]; 
    String quickFileUserQuery = "http://" + quickFileServer + ":" + quickFilePort + "/quickfile/rest/admin/users/0/0"; 
    URL url = new URL(quickFileUserQuery); 
    HttpURLConnection uc = (HttpURLConnection) url.openConnection(); 
    uc.setRequestMethod("GET"); 
    uc.setDoInput(true); 
    String uidpw = quickFileUser + ":" + quickFilePassword; 
    String encodedPassword = Base64.encodeBase64String(uidpw.getBytes()); 
    uc.setRequestProperty("Authorization", "Basic " + encodedPassword); 
    InputStream is = uc.getInputStream(); 
    StringBuffer sb = new StringBuffer(); 
    int c; 
    while ((c = is.read()) != -1) { 
     sb.append((char) c); 
    } 
    String ss = sb.toString(); 
    String ps = "(.*?)\"totalRows\":(.+?),.*"; 
    String userCount = ss.replaceAll(ps, "$2"); 
    System.out.println("\nNumber of QuickFile users on server <" + quickFileServer + "> = " + userCount);  
    uc.disconnect(); 
    } catch (Exception e) { 
     System.out.println("Exception: " + e.getMessage()); 
    } 
    } 
} 

我需要建立一個定製的APP來看到這個動作?如果是這樣,我該如何解決這個問題?由於我是編程新手,從哪裏開始?

我將不勝感激任何答案

+0

也許會是最容易從命令行運行你可以看看http://stackoverflow.com/questions/1279542/how-to-execute-a-java-class-from-the-command -line for reference – chancea

+0

非常感謝您的鏈接 –

回答

0

如果你的問題是如何使用圖書館(或二進制),用於在你的代碼,那麼所有你需要做的是進口庫。

根據您使用的IDE,可以通過多種方式完成此操作。

在Eclipse中,例如,你可以去項目>屬性> Java構建路徑>庫並單擊添加外部JAR ...。導航到您的JAR文件(庫),然後單擊確定。現在,圖書館應該可以通過代碼訪問其資源,並且可以像現在一樣運行示例代碼。

有很多IDE。你添加一個庫的方式可能會因每個而不同。這可能有助於查看各個IDE的網站,以瞭解如何導入Java庫和二進制文件。

1

我明白通過「實施」你的意思是你想採取這個示例代碼並運行它。

每個Java文件都包含一個與文件名稱相同的頂級類。在這種情況下,該課程的名稱是QuickFileUserCount,該文件應命名爲QuickFileUserCount.java。如果文件頂部有一個「包」聲明,那麼它將指定該文件所在的目錄;因爲它沒有,它會在你的工作目錄是什麼。

Java程序首先調用某個類的main方法。任何類都可以擁有main方法,因此您指定要開始運行的類。

使本示例更復雜一點的一個細節是來自Apache Commons的import。這告訴Java,QuickFileUserCount類使用Apache Commons Codec中的Base64類。你需要Commons Codec庫來編譯或運行這個例子。

它通常是最容易使用的IDE,比如Eclipse開發Java應用程序,但在這個例子中的一個簡單的試驗:

  • 下載從Apache Web站點上的共享編解碼器庫。將commons-codec-1.8.jar解包到臨時目錄中。
  • 保存文件名爲QuickFileUserCount.java的示例。
  • 用下面的命令編譯它(你需要安裝Java開發工具包):

    javac -classpath commons-codec-1.8.jar QuickFileUserCount.java 
    

    的「類路徑」選項告訴Java編譯器來尋找一個jar文件裏面的Base64編碼類。使用以下命令它

  • 運行:

    java -classpath commons-codec-1.8.jar QuickFileUserCount 
    

    注意不要使用「的.java」這一次。您應該看到打印出的用法說明。

+0

非常感謝。我會試試這個。兩個問題:你發佈我應該運行的最後一條命令,我從哪裏運行,以及輸出結果如何?我是否在eclipse中運行它?另外,我現在正在下載eclipse,Eclipse Standard 4.33是否足以與JDK一起使用? –

+0

常規Eclipse不會對此代碼造成任何困難,但您仍然需要將Commons Codec jar導入到您的項目中。使用@ Jace的答案中的步驟。如果您是從Eclipse運行而不是從命令行運行,則可以右鍵單擊導航器中的類和運行方式 - > Java應用程序。 Eclipse將編譯它,輸出將顯示在控制檯視圖中。如果您需要更多信息,請查找編寫控制檯Java應用程序的介紹。 – chrylis