2013-07-30 41 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