Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java /WEB-INF/classes vs/WEB-INF/lib_Java_Web Applications_Jakarta Ee - Fatal编程技术网

Java /WEB-INF/classes vs/WEB-INF/lib

Java /WEB-INF/classes vs/WEB-INF/lib,java,web-applications,jakarta-ee,Java,Web Applications,Jakarta Ee,我想将我的JavaEE6web类(bean、过滤器、servlet)打包到jar中,并将其与其他实用程序jar一起放入/web-INF/lib/目录,然后完全放弃/web-INF/classes/目录 在类加载、访问应用程序上下文等方面,两者之间是否存在实质性差异 谢谢 PS:每当我在谷歌上搜索任何java规范时,我总是被重定向到Oracle文档索引,它离原始url有十几次点击。有人知道那里发生了什么吗?我会选择/WEB-INF/classes。它允许您在调试模式下运行应用程序,并在更改时热交换

我想将我的
JavaEE6
web类(bean、过滤器、servlet)打包到jar中,并将其与其他实用程序jar一起放入
/web-INF/lib/
目录,然后完全放弃
/web-INF/classes/
目录

在类加载、访问应用程序上下文等方面,两者之间是否存在实质性差异

谢谢


PS:每当我在谷歌上搜索任何java规范时,我总是被重定向到Oracle文档索引,它离原始url有十几次点击。有人知道那里发生了什么吗?

我会选择
/WEB-INF/classes
。它允许您在调试模式下运行应用程序,并在更改时热交换类。如果您将所有内容打包为一个jar,那么每次更改类时都必须重新打包并重新部署应用程序

简单地说:假设您有class
org.example.Test.class
,如果您将它放入jar和
WEB-INF/lib/
目录中,并将同一个类复制到
WEB-INF/classes/
中,那么该应用程序的类加载器将使用最后一个类(来自
WEB-INF/classes/


有时你可以利用它作为优势-我有一个库,它有一个bug。。。我查找该类的源代码(bug在哪里;我错过了如何知道bug在该类中的部分,这是另一个故事),我使用固定代码将该类添加到项目中,并将其编译成
WEB-INF/classes/
,而库仍然存在于
WEB-INF/lib/
中。固定类将一直使用,直到库被固定。

在Tomcat Servlet容器的定义中:
WEB-INF\classes
WEB-INF\lib
之前搜索。您可以选择将您的类加载委托给您的自定义类加载程序,即使这样,上面的顺序也会得到维护


如果您选择与其他供应商合作,例如JBOss、Glassfish、Jetty,可能会有不同的订单,但我不确定这些订单。

谢谢。但是,除了调试之外,它在功能上是否与应用程序相同?谢谢,此功能可能会有所帮助。