tomcat没编译java文件_tomcat发布后项目classes下无编译文件

折腾了两天的事,终于解决了。

开始struts2项目正常运行,在一次更新后,忽然tomcat在启动阶段报错,提示配置action的xml文件出错,查看控制台发现是找不到对应的类。

解决过程如下:

1、首先排查是否是class类名/action路径/method名字错误, 发现都没问题,那么应该就是发布时的配置问题。

2、找到tomcat发布后的文件,发现在web-inf/classes下package都有,然而里面没有.class文件,说明是项目配置原因。以前曾碰到过web-inf下没有classes文件夹,记得当时出错原因在于项目-properties下

d1c33fd61a53ec78e8c589dfb46dc358.png

/src配置为空,这样服务器就不会把java文件编译到classes下。然而这次配置是正确的,并且classes下有对应的package,只是没有.class文件,意味着java文件没有被编译,很可能是jar包出现了问题

3、项目-build-path,果然libraries下多了个不明jar,且采用绝对路径,指向本地文件,可是我根本没有这个文件,应该是某位同学提交时出的问题,删掉,重启tomcat,然而还是报错!

4、试遍了网上能找到的所有方法,包括clean项目、删掉再部署,依然有问题!

5、突然想到会不会还有一些隐藏配置文件出了问题,因为其他人从svn导入的项目没有问题,那么可能是一些我没有提交的文件出了问题,于是开始检查.classpath文件。果不其然!在第三步时记得项目有一个指向本地jar包的lib,当时删掉了,然而在这里又看见了!

b0e2cd4a526d1c70fdad21fa0500a2cc.png

就是它!因为找到不到这个lib,项目无法编译,classes下的都为空,导致tomcat找不到对应的类,所以报错!!

解决办法:删掉这个不知道哪个添加的莫名的东西!!!!!!!

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在使用Tomcat运行.java文件时,我们首先需要将.java文件编译成.class文件。在命令行,我们可以使用javac命令来对Java文件进行编译。例如,如果我们有一个名为"HelloWorld.java"的文件,运行以下命令将其编译成HelloWorld.class文件javac HelloWorld.java 一旦编译成功,我们就可以将生成的.class文件放置在Tomcat的web应用程序目录,通常是在Tomcat安装目录下的webapps文件。在这个例子,我们将HelloWorld.class文件放置在webapps文件夹下的名为"myapp"的文件。 接下来,我们需要启动Tomcat服务器。在命令行,我们可以切换到Tomcat的bin目录,并运行startup.sh(对于Unix/Linux)或startup.bat(对于Windows)命令来启动Tomcat。 一旦Tomcat服务器启动成功,我们就可以通过访问http://localhost:8080/myapp/HelloWorld来运行我们的Java程序。其,localhost是指本地主机,8080是Tomcat服务器的默认端口,而myapp是我们之前放置HelloWorld.class文件的应用程序目录的名称,HelloWorld是Java程序的类名。 在浏览器访问上述URL后,Tomcat服务器将找到HelloWorld.class文件,并将其加载和执行。在浏览器,我们将看到Java程序输出的结果。 总之,要在Tomcat运行Java程序,我们需要先编译.java文件成.class文件,然后将.class文件放置在Tomcat的web应用程序目录,最后启动Tomcat服务器并通过URL访问来执行Java程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值