0

我正在尝试编译一个servlet被调用的BeerSelect.java,我收到了这个错误:

javac: file not found: BeerSelect.java

我使用编译:javac -classpath"C:\Program Files\Apache Software Foundation\Apache Tomcat 7.0.34\lib\servlet-api.jar"; -d classes \BeerSelect.java

我使用此命令将当前目录设置servlet为存储位置进行编译,我的类路径设置正确。

我在这个网站上检查了许多相关问题,但无法得到答案

4

2 回答 2

0

你不应该将你的类路径设置为指向你的 JDK bin 目录——相反,它应该是 PATH 环境变量,它与类路径有不同的用途。(类路径定义了一个包含已编译 Java .class 代码的 jar 和目录的列表;PATH 变量定义了一个路径列表,当在当前目录中找不到程序时,shell 需要在这些路径中查找和定位要执行的程序——所以如果你输入例如 zip - 它会查看 PATH 中定义的所有目录并找出 zip 程序位于 /usr/bin 下)其次,如果您想从两个目录编译源代码,您需要指定:

源所在的所有路径(home/pathToFolderA/src 和 home/pathToFolderB/gen-java)要生成的已编译 .class 文件的路径在类路径中指定您可能在源文件中使用的任何库 总结一下起来,编译是这样的:

javac -d /home/pathToFolderWithResultsOfCompilation -classpath /path/to/some.jar:/path/to/another.jar home/pathToFolderA/src/*.java home/pathToFolderB/gen-java/*.java 

并运行您编译的程序:

java -classpath /path/to/some.jar:/path/to/another.jar:/home/pathToFolderWithResultsOfCompilation full.name.of.your.Java
于 2013-08-06T13:16:56.697 回答
0

我使用的命令的问题:
javac -classpath "C:\Program Files\Apache Software Foundation\Apache Tomcat 7.0.34\lib\servlet-api.jar"; -d \BeerSelect.java

使用路径名来存储编译结果(.class 文件)并在 BeerSelect servlet 名称上加上反斜杠(我突出显示了错误)。我将命令改进为如下所示:

javac -d C:\Users\ModernWarFare\Desktop\MyProject\beerV1\classes BeerSelect.java

突出显示的路径是我要存储 .class 文件的位置,我没有指定 BeerSelect.java 文件的路径,因为它位于当前目录中

请注意,我省略了 servlet-api.jar 文件的路径,因为我使用的是 tomcat 7,它已经将我需要的所有 jar 文件存储在 C:\Program Files\Apache Software Foundation\Apache Tomcat 7.0.34\lib 目录中.

抱歉回复晚了,我的在线时间有限

于 2013-08-07T10:21:26.477 回答