当前位置: 首页 > 知识库问答 >
问题:

如何使用jar文件区分TomEE不同的版本?

欧阳睿范
2023-03-14

我已经下载了TomEE plume 8.0.0-M2,TomEE plus 8.0.0-M2,TomEE webprofile 8.0.0-M2,TomEE microprofile 8.0.0-M2和OpenEJB Standalone 8.0.0-M2(来自http://tomee.apache.org/download-ng.html)

我已经安装了所有这些TomEE版本,并在解压缩后更改了这些文件夹的名称,但现在,我无法检查我正在使用哪个版本。我尝试过使用猫薄荷-8.0.0-M2.jar JAR文件,但它看起来都一样。

我只想区分http://tomee.apache.org/comparison.html中提到的版本

注意:不要根据不同版本的TomEE中存在或不存在的随机jar文件给我答案。

共有1个答案

赫连棋
2023-03-14

版本之间的差异仅在于所包含的库的数量。也就是说,TomEE源文件将完全不同。安装的lib文件夹的大小不同(因为前面提到的库中存在差异)。

如果您可以访问目录结构,简单的解决方案是检查jar文件列表。您对这种方法不感兴趣,但这是最简单的方法。:)

如果您不能访问目录结构,或者想知道在运行时支持哪种特性,您可以使用一个简单的小技巧来检测特性,并将这些特性与这里提供的表相关联。

解决方案本身是询问关于特定特性的类。为此,您需要一个与特性相关的类名列表。之后,您可以使用这样的方法来检查类是否可访问(如果您使用类路径而不是模块路径)。

private boolean isClassPresent(String className){
    try {
        Class.forName(className);
        return true;
    } catch (ClassNotFoundException e) {
        return false;
    }
}

根据生成的列表,您可以猜测使用的是< code>TomEE的哪个预配置版本。

请注意,如果添加了任何额外的lib,则可能会弄乱您的计算。

 类似资料:
  • 问题内容: 这是一个普遍的问题。我正在使用2个库 A.jar 和 B.jar ,它们取决于同一jar的不同版本。 假设在运行时我需要 THIS.xxxjar 我可以针对其依赖项编译特定的jar(A.jar / B.jar),但在运行时我只需要加载1个版本。哪一个? 仅加载1个依赖关系(最新版本)意味着,如果库不是向后兼容的,那么我的代码可能会抛出运行时异常(那里有向后兼容的库吗?)。 无论如何,我

  • 问题内容: 如何在网络驱动程序中设置Firefox版本?我只想使用其他版本的Firefox。 就像其他版本19、20、21 … 请提供一个通用解决方案,该解决方案也对其他浏览器有所帮助。 问题答案: 您必须在系统上安装所有版本。然后,您可以使用System属性来定义Firefox的路径。请注意,由于路径是通过System属性设置的,因此您将无法在同一Java进程中运行两个不同的Firefox。 此

  • 问题内容: 我已经安装了Java6和7,并使用eclipse编写了一个简单的jdbc应用程序。我在lib文件夹中同时有sqljdbc4.jar和sqljdbc.jar。我收到此消息… 2013年12月18日9:29:51 com.microsoft.sqlserver.jdbc.SQLServerConnection 严重:该驱动程序不支持Java Runtime Environment(JRE)

  • 问题内容: 当存在具有不同版本的重复JAR时,该行为非常不一致。有人知道JVM如何处理重复项吗? 问题答案: 类加载器按顺序搜索类路径,并使用找到的第一个匹配类。

  • 我正在尝试构建一个选择唯一值组的查询。我知道如何对值进行分组并选择不同的值,但我不知道如何选择不同的值组,而不管所考虑元素的顺序如何。更准确地说: 我的XML是这样的: 在这里,我想将

  • 问题内容: 我在Sun上阅读了有关JAR文件的Java教程,但是仍然找不到解决我问题的方法。我需要使用一个名为jtwitter.jar的jar文件中的类,我下载了该文件并尝试执行该文件(昨天我发现可以通过双击来执行.jar文件),而Vista却给我一个错误提示:无法从[路径] /jtwitter.jar加载Main-Class Manifest属性。 编码.jar文件的人要我将其导入,但是在哪里将