使用javac命令编译java文件。

时间:2023-07-25 09:26:37

今天想学习一下web services的知识,在网上找了一个教程,里面写了一个web services客户端调用,在cmd下执行的,但是没有给出用javac编译的细节。所以自己就借着这个机会学了一下:具体代码如下:

package client;

import javax.xml.namespace.QName;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.rpc.client.RPCServiceClient; public class RPCClient
{
public static void main(String[] args) throws Exception
{
// 使用RPC方式调用WebService
RPCServiceClient serviceClient = new RPCServiceClient();
Options options = serviceClient.getOptions();
// 指定调用WebService的URL
EndpointReference targetEPR = new EndpointReference(
"http://localhost:8080/axis2/services/SimpleService");
options.setTo(targetEPR);
// 指定getGreeting方法的参数值
Object[] opAddEntryArgs = new Object[] {"超人"};
// 指定getGreeting方法返回值的数据类型的Class对象
Class[] classes = new Class[] {String.class};
// 指定要调用的getGreeting方法及WSDL文件的命名空间
QName opAddEntry = new QName("http://ws.apache.org/axis2", "getGreeting");
// 调用getGreeting方法并输出该方法的返回值
System.out.println(serviceClient.invokeBlocking(opAddEntry, opAddEntryArgs, classes)[0]);
// 下面是调用getPrice方法的代码,这些代码与调用getGreeting方法的代码类似
classes = new Class[] {int.class};
opAddEntry = new QName("http://ws.apache.org/axis2", "getPrice");
System.out.println(serviceClient.invokeBlocking(opAddEntry, new Object[]{}, classes)[0]);
}
}

  里面用到了axis2的jar包,通过eclipse定位源代码的方式,知道需要引入的jar包,其实命令很简单:

cmd>workspace\Axis2Study\src>javac -d D:\\ -cp D:\OpenSource\a
xis2-1.6.\lib\axis2-adb-1.6..jar;D:\OpenSource\axis2-1.6.\lib\axis2-kernel-.
6.2.jar cn\com\unionman\webservices\client\RPCClient.java

这样就可以了,通过-d指定编译的class文件的输出路径,它会带有包路径的,-cp就是指定要加载的jar包。

另外我发现java环境变量里面的classpath不是必须配置的。