把src目录下的java类文件打成jar包放到web-inf下的lib里,classes文件删除

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了把src目录下的java类文件打成jar包放到web-inf下的lib里,classes文件删除相关的知识,希望对你有一定的参考价值。

把src目录下的java类文件打成jar包然放到web-inf下的lib里,把web-inf下的classes文件删除,然后把整个项目部署到tomcat6.x下运行不成功,该怎么解决?

你把jar里的同名文件删除不就好啦。
--------------------------------------
如果是发布到weblogic的话,可以在WebContent\WEB-INF\weblogic.xml里面配置。
参考配置如下:
<?xml version="1.0" encoding="UTF-8"?>
<weblogic-web-app xmlns=""
xmlns:xsi=""
xsi:schemaLocation=" ">
<container-descriptor>
<!-- 修改JVAV类后不会自动重启 在debug模式下 修改方法内逻辑也不用重启,但是改变方法参数等需要重启才管用 -->
<servlet-reload-check-secs>-1</servlet-reload-check-secs>
<!-- <resource-reload-check-secs>-1</resource-reload-check-secs>
<!-- web-inf/classes里面优于lib加载 -->
<prefer-web-inf-classes>true</prefer-web-inf-classes> -->
</container-descriptor>
<!-- URL根路径 -->
<context-root></context-root>
<jsp-descriptor>
<!-- 查看(调试)JSP编译生成的java源文件 \servers\AdminServer\tmp\_WL_user\webapp\XXX\jsp_servlet\_jsp\_ -->
<keepgenerated>true</keepgenerated>
<!-- 修改JSP后不要重启服务就自动加载-->
<page-check-seconds>1</page-check-seconds>
</jsp-descriptor>
</weblogic-web-app>

-----------------------------------------------------------------
Tomcat启动时classloader加载顺序
Tomcat的class加载的优先顺序一览
1.最先是$JAVA_HOME/jre/lib/ext/下的jar文件。
2.环境变量CLASSPATH中的jar和class文件。
3.$CATALINA_HOME/common/classes下的class文件。
4.$CATALINA_HOME/commons/endorsed下的jar文件。
5.$CATALINA_HOME/commons/i18n下的jar文件。
6.$CATALINA_HOME/common/lib 下的jar文件。
(JDBC驱动之类的jar文件可以放在这里,这样就可以避免在server.xml配置好数据源却出现找不到JDBC Driver的情况。)
7.$CATALINA_HOME/server/classes下的class文件。
8.$CATALINA_HOME/server/lib/下的jar文件。
9.$CATALINA_BASE/shared/classes 下的class文件。
10.$CATALINA_BASE/shared/lib下的jar文件。
11.各自具体的webapp /WEB-INF/classes下的class文件。
12.各自具体的webapp /WEB-INF/lib下的jar文件。

Tomcat的应该也有相关配置,去别的地方查查看,我这边没有资料
追问

我用的是tomcat的,就是查了很多资料都没找到这方面的配置,jar包是不相同的,在tomcat下能够部署成功,classes里的文件要删除的,但是tomcat加载的时候似乎没加载我放在 /WEB-INF/lib下的jar文件

参考技术A 第一步:选中项目,选择“export”,之后选择java下的“jar file”;

第二步:选择“next”,之后勾选上需要打包的“java”文件,之后选择“browse”;
第三步:选择保存位置和相应的文件名,之后选择“Finsh”,即可完成打包操作;
第四步:找到打包的jar文件,复制到lib下;
第五步:必须删除刚才打包的java文件,之后classes路径下的编译文件会自动被删除。
备注:如果单纯的删除classes下的class文件是没效果的,因为只要项目下有java文件,即使删除class文件,之后还会自动进行编译的。
参考技术B java运行的是class文件,直接把java类文件打包肯定是不行的 ,jar包是通过编译编译出来的包追问

那有什么方法能让它运行呢?

追答

如果是可运行的程序的话 直接部署到tomcat下,我只知道在myeclipse下部署程序的话,可以通过build path那个选项把jar包导入,运行自动编译class类

追问

现在的问题是:运行时没有自动编译成class类,该怎么解决?

追答

那肯定是项目没有在tomcat下部署成功 你可以在tomcat下启动 看看是否加载po类 如果没有的话,说明项目没有在tomcat下部署成功 你在tomcat的这个路径下apache-tomcat-6.0.18\conf\Catalina\localhost 新建一个xml文件 文件名是"项目名称.xml" 内容是

其中项目名称改成 你项目的名称 docBase是你项目的位置 根据你自己的情况配置一下 直接可以在tomcat中启动项目 然后看看是否加载po

参考技术C 报什么错误日志追问

没有任何错误,tomcat能够正常启动,就是项目不能访问,只显示登录页面,项目是用struts2做的

参考技术D 换个

怎么把3个java文件打成jar包

怎么把3个java文件打成jar包

参考技术A java代码文件还是编译好的class文件?
打包命令是 进入到文件编译路径下
cd workspace

>jar -cvf test.jar com/bbb.class aaa.class

test.jar 是jar文件名 com/bbb.class 是com包下的bbb.class文件
如果是打包源代码也可以是A.java B.java

如果是在eclipse 下,直接在 菜单 File>export>java>jar 选择你的java文件 即可导出成jar本回答被提问者采纳
参考技术B 示例 1:将两个类文件归档到一个名为 classes.jar 的归档文件中:
jar cvf classes.jar Foo.class Bar.class
示例 2:使用现有的清单文件 "mymanifest" 并
将 foo/ 目录中的所有文件归档到 "classes.jar" 中:
jar cvfm classes.jar mymanifest -C foo/ .
参考技术C jar cvf dest.jar A.class B.class C.class

以上是关于把src目录下的java类文件打成jar包放到web-inf下的lib里,classes文件删除的主要内容,如果未能解决你的问题,请参考以下文章

怎么把3个java文件打成jar包

java 怎么把多个jar打包成一个jar来使用??

java 多个类文件如何打包成jar

把java的class文件打成jar包的步骤

maven把java项目打包,如何把配置文件提出来

如何把java 文件打成jar