首页 > 解决方案 > 试图编译一个新的 servlet 来做一个休息服务

问题描述

我是构建用于休息和这些技术版本的 servlet 的菜鸟......由于 servlet 必须运行的位置,我们在 Java 1.4.2_08 和 Tomcat 版本 5.5.17 上创建了一个 Hello World 示例和我正在尝试编译它。它使用 Jersey 库(JAX-RS 2.1)并得到以下错误:“javac:无源文件”

这是我正在使用的 cmd: C:\j2sdk1.4.2_08\bin\javac -sourcepath C:_restful\WEB-INF\classes\com\dmphealth\ws\helloworldresource.java -classpath "C:_restful\WEB-INF \lib\" -d C:_restful\WEB-INF\classes 我试过在 \ws\ 之后只使用一个 \ 并且在 \ws\ 之后也尝试过 *.java 和 * 他们都有相同的结果......任何想法将不胜感激。戴夫

为了澄清代码,上面用斜体表示。C:_restful 是库和代码所在路径的第一部分。java 1.4 的原因是因为 servlet 将进入的系统是在那个平台上。此时为一个额外的 servlet 升级平台成本很高。

标签: javatomcat

解决方案


你的目录结构很奇怪。最好不要将任何源存储在类目录中。

Tomcat 类目录通常包含已编译的类(.class 文件)而不是源代码(.java 文件)。源文件应该在开发存储库中,编译它们实际上会创建 .class 文件并将它们复制到 WEB-INF\classes

命令应该是这样的:

C:\j2sdk1.4.2_08\bin\javac -sourcepath C:\path_to_the_source_file_dir\*.java -classpath C:\_restful\WEB-INF\lib\* -d C:\_restful\WEB-INF\classes

确保 -sourcepath 实际上包含任何要编译的 .java 文件!

你这样做的方式并不容易。您最好使用 IDE,创建一个 lib 类路径,然后从那里编译您的代码并将编译输出重定向到您的目标类目录。


推荐阅读