首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在servlet中使用我自己的类(Java/Tomcat/Linux)

在servlet中使用我自己的类(Java/Tomcat/Linux)
EN

Stack Overflow用户
提问于 2013-05-03 05:14:27
回答 3查看 457关注 0票数 0

在过去的三天里,我找不到这个问题的一个答案。我需要能够在我的servlet中使用我自己的类。

我非常确定我的文件层次结构是正确的:

代码语言:javascript
复制
|-WEB-INF/
|---classes/
|------com/
|---------myProject/
|------------user/
|---------------User.java
|---------------Location.java
|---------------Comment.java
|------------servlet/
|---------------DoComment.java

由于User.java、Location.java和Comment.java在一个包中被定义为com.myProject.user,我知道我应该转到java项目的主根目录,并以这种方式编译它们:

代码语言:javascript
复制
/var/lib/tomcat6/webapps/ROOT/WEB-INF/classes$ sudo javac com/myProject/user/Location.java
/var/lib/tomcat6/webapps/ROOT/WEB-INF/classes$ sudo javac com/myProject/user/User.java
/var/lib/tomcat6/webapps/ROOT/WEB-INF/classes$ sudo javac com/myProject/user/Comment.java

但是,当我在编译中使用类路径时,javac无法识别其他对象(cannot find symbol错误)。

代码语言:javascript
复制
/var/lib/tomcat6/webapps/ROOT/WEB-INF/classes$ sudo javac -cp /usr/share/tomcat6/lib/servlet-api.jar com/myProject/servlet/DoComment.java

请帮帮我!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-05-03 19:32:25

问题已解决!

我为com.myProject.user包创建了一个JAR文件,并将其保存在WEB-INF/lib中。然后我使用冒号分隔的两个类路径编译servlet。

代码如下:

代码语言:javascript
复制
/var/lib/tomcat6/webapps/ROOT/WEB-INF/classes$ sudo jar cvf myproject-user.jar com/myProject/user/User.class com/myProject/user/Location.class com/myProject/user/Comment.class
/var/lib/tomcat6/webapps/ROOT/WEB-INF/classes$ mv myproject-user.jar ../lib/myproject-user.jar
/var/lib/tomcat6/webapps/ROOT/WEB-INF/classes$ sudo service tomcat6 restart
/var/lib/tomcat6/webapps/ROOT/WEB-INF/classes$ sudo javac -cp /usr/share/tomcat6/lib/servlet-api.jar:../lib/myproject-user.jar com/myProject/servlet/DoComment.java

祝您今天愉快。

票数 0
EN

Stack Overflow用户

发布于 2013-05-03 05:19:48

从javac手册页:

-cp类路径

设置用户类路径,覆盖CLASSPATH环境变量中的用户类路径。如果没有指定CLASSPATH或- class - path,则用户类路径由当前目录组成。

基本上,在使用-cp标志时会覆盖类路径,因此需要确保在类路径中指定所有必需的类。类路径条目的分隔符是:,它接受通配符。

票数 0
EN

Stack Overflow用户

发布于 2013-05-03 05:43:03

您正在将java源代码放在需要编译的java类的位置。尝试编译源代码,然后将类文件(.class与.java)添加到当前放置它们的位置。

要使其正常工作,必须确保类没有依赖关系,并且类的包声明与放置它们的文件夹层次结构相匹配。

最好将这些类打包到一个JAR中,并将该JAR放在WEB-INF/lib文件夹中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16347840

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档