在命令行的classpath中包含jar(javac或apt)

试图运行这个程序。 我认为要设置所有我需要运行的Web服务的东西。 (虽然使用javac我有同样的问题)。 我想我得到的是编译错误。 (在底部显示)。

我想我需要做的是包括这个jar在我的课程path:jsr181-api.jar (源) 。 有没有一个简单的临时的方法来做到这一点(在solaris上)? 我不想把它添加到我的bash_rc文件(它永远存在)。 我也知道有一些方法可以使用清单文本文件来完成,但看起来很复杂,所以我没有看清它。 我可以做一些像:

javac HelloImp <listOfJars> 

要么

 ant HelloImp <listOfJars> 

码:

 package server; import javax.jws.WebService; @WebService public class HelloImpl { /** * @param name * @return Say hello to the person. */ public String sayHello(String name) { return "Hello, " + name + "!"; } } 

编译错误:

 HelloImpl.java:3: package javax.jws does not exist import javax.jws.WebService; ^ HelloImpl.java:5: cannot find symbol symbol: class WebService @WebService ^ 2 errors 

更新:酷了,但它仍然没有工作。 我创造了一个新的问题来保持事物的美好和组织:

尝试以下操作:

 java -cp jar1:jar2:jar3:dir1:. HelloWorld 

默认的类path(除非有一个CLASSPATH环境variables)是当前目录,所以如果你重新定义了它,确保你正在像当前一样将当前目录(。)添加到类path中。

在Windows中:

 java -cp C:/.../jardir1/*;C:/.../jardir2/* class_with_main_method 

确保具有主函数的类位于其中一个包含的jar中

使用-cp-classpath开关。

 $ java -help Usage: java [-options] class [args...] (to execute a class) or java [-options] -jar jarfile [args...] (to execute a jar file) where options include: ... -cp <class search path of directories and zip/jar files> -classpath <class search path of directories and zip/jar files> A ; separated list of directories, JAR archives, and ZIP archives to search for class files. 

(请注意,用于分隔类path中条目的分隔符在不同操作系统之间是不同的,在我的Windows机器上,在* nix中通常是: 。)

使用:

 apt HelloImpl.java -classpath /sac/tools/thirdparty/jaxws-ri/jaxws-ri-2.1.4/lib/jsr181-api.jar:. 

作品,但它给了我另一个错误,看到新的问题

javac HelloWorld.java -classpath ./javax.jar,假设javax在当前文件夹中,而编译目标是“HelloWorld.java”,并且你可以在没有main方法的情况下编译

注意对于Windows用户来说,这个jar子应该被隔开; 而不是:

例如: javac -cp external_libs\lib1.jar;other\lib2.jar;