java—在命令行的类路径中包含JAR(javac或apt)

wfveoks0  于 2021-06-30  发布在  Java
关注(0)|答案(6)|浏览(277)

正在尝试运行此程序。我认为要设置所有的web服务,我需要运行apt(尽管使用javac我也有同样的问题)。我想我得到的是编译错误(如下图所示)。
我想我需要做的是在我的类路径中包含这个jar:jsr181-api.jar(源代码)。有没有一种简单的临时方法(在solaris上)来执行此操作?我不想把它添加到我的bash\u 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

**更新:**很酷,已经结束了,但还没有完全工作。我提出了一个新问题,让事情变得井井有条:

q5lcpyga

q5lcpyga1#

在windows中:

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

确保包含main函数的类位于其中一个jar中

k10s72fa

k10s72fa2#

使用 -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.

(请注意,用于分隔类路径上的条目的分隔符在操作系统之间是不同的,在我的windows计算机上是不同的 ; ,在*nix中通常是 : .)

fafcakar

fafcakar3#

使用:

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

工作,但它给了我另一个错误,见新问题

emeijp43

emeijp434#

javac helloworld.java-classpath./javax.jar,假设javax在当前文件夹中,编译目标是“helloworld.java”,可以不使用main方法进行编译

qq24tv8q

qq24tv8q5#

注意对于windows用户,jar应该用 ; 而不是 : .
例如: javac -cp external_libs\lib1.jar;other\lib2.jar;

cs7cruho

cs7cruho6#

请尝试以下操作:

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

默认的classpath(除非有classpath环境变量)是当前目录,因此如果重新定义它,请确保像我所做的那样将当前目录(.)添加到classpath。

相关问题