我还看到,我不必使用导入,只需使用整个路径调用类。这似乎是一个很多的工作,但可能的解决方案。我只想知道有没有更快更容易的解决办法。
您描述的行为可以通过ClassFileTransformer
实现,就像Tomcat迁移工具提供的那样。Tomcat10的每个副本都与迁移工具的阴影版本捆绑在一起,所以您不需要独立分发它。
您可以创建jakarta.servlet.ServletContainerInitializer
,它将在web应用程序启动时注入ClassFileTransformer
:
import java.util.Set;
import jakarta.servlet.ServletContext;
import jakarta.servlet.ServletException;
import org.apache.tomcat.InstrumentableClassLoader;
import org.apache.tomcat.jakartaee.ClassConverter;
public class JavaEEContainerInitializer implements javax.servlet.ServletContainerInitializer {
@Override
public void onStartup(Set<Class< ? >> c, ServletContext ctx) throws ServletException {
final ClassLoader cl = Thread.currentThread().getContextClassLoader();
if (cl instanceof InstrumentableClassLoader) {
final InstrumentableClassLoader instrumentableCl = (InstrumentableClassLoader) cl;
instrumentableCl.addTransformer(new ClassConverter());
}
}
}
然而,对于一个库,我宁愿分发它的两个版本,这样库就不必扰乱应用程序的类加载器。例如。OpenWebBeans
提供了同一工件的两个版本:Java EE版本和带有Jakarta
分类器的Jakarta EE版本。
我有个问题希望有人能帮我解决。 我有两个java项目,其中一个我们将称之为CORE,它包含一组通用功能的类,并向我们的DB提供hibernate接口/DAO等。 其他项目需要CORE以便与我们的DB交互并使用公共的CORE功能。 现在,我已经使用Gradle创建了一个Jar文件,并通过IDE将该Jar文件导入到其他项目中,所有内容都可以正确编译。 现在我明白了,当创建一个Jar文件时,您需要提供一
问题内容: 我正在学习Java,但遇到了问题。我创建了6个不同的类,每个类都有自己的方法。我想为每个类创建可执行文件,即6个可执行文件。 到目前为止,我尝试了 我得到“无法访问jarfile cf”。我做错了,但我不知道怎么办。如果这意味着某种意义,我还将使用Eclipse IDE。 问题答案: 为了创建一个.jar文件,你需要使用jar而不是java: 另外,如果要使其可执行,则需要为应用程序指
我有一个文件夹。java文件,我需要编译它们以获得。jar文件。主要的问题是,这些文件太多了,它们被分成了许多文件夹。有没有办法把它们都编译好让我。类文件并创建一个jar文件夹?我的文件夹由Weka工具修改的脚本组成,我需要编译它们来运行程序。 非常感谢你的帮助。
问题内容: 我想创建一个jar文件来执行,该文件是使用java和clojure实现的。这是我采取的步骤。 使我的Java代码调用clojure代码 我可以生成一个具有clojure核心和我的clojure代码的jar文件(ThingOne-1.0.0-SNAPSHOT- standalone.jar),并且我还可以得到一个使用jar文件中使用clojure代码的类文件(HelloJava.clas
我试图使用一个jar生成一个包含clojure jar文件和java类文件的jar文件:创建一个jar文件,用于从java/clojure执行 按照指令,我可以使用生成目录。按照指示,我替换了java源代码,并添加了ThingOne-1.0.0-SNAPSHOT-standalone.jar 运行,它构建jar文件时没有出现错误,但是当我尝试执行jar文件时,收到了错误消息。 什么可能是错的?
问题内容: 我想知道如何创建一个jar文件,该文件保留其内容的文件权限。 我将源文件和可执行文件打包在一个jar文件中,该文件将在使用前提取。人们应该能够通过运行批处理/ shell脚本文件立即运行示例和演示。然后,他们应该能够修改源代码并重新编译所有内容。 我正在努力使使用它的人过上轻松的生活,其中包括Java和编程的新手,他们可能正在Linux / Unix上工作。 我可以访问运行Window