在命令行的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;