首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Apache分析类路径中使用的重复Jar/API

如何使用Apache分析类路径中使用的重复Jar/API
EN

Stack Overflow用户
提问于 2016-04-18 11:48:13
回答 3查看 1.6K关注 0票数 2

在我的项目中,他们使用了比225+ jar文件更多的导致内存问题的JAR文件,当我在网上搜索时,我了解到ApacheTattle一举将分析并给出应用程序(Classpath)使用的重复类和JAR/API的报告。所以我引用了以下链接

1) 如何使用JBoss测试工具

2) 用Tattletale发现JBoss客户端jar列表

3) Jboss正式文件

但是,我不知道如何执行和运行Tattletale文件,我的应用程序也不是基于Maven,所以我没有使用maven。

我已经下载了tattletale-1.2.0.Beta2.jar文件和jboss-seam-2.3.0.CR1-dist文件,并使用了以下命令

代码语言:javascript
复制
java -Xmx512m -jar tattletale.jar /Java/workspaces/mycoolprojects/projectX output-projectx

但是得到后续的异常

代码语言:javascript
复制
Exception in thread "main" java.lang.NoClassDefFoundError: javassist/NotFoundException
        at org.jboss.tattletale.analyzers.Analyzer.getScanner(Analyzer.java:49)
        at org.jboss.tattletale.Main.execute(Main.java:608)
        at org.jboss.tattletale.Main.main(Main.java:1099)
Caused by: java.lang.ClassNotFoundException: javassist.NotFoundException
        at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        ... 3 more

更重要的是,我没有理解jboss-seam-2.3.0.CR1-dist文件的用途。这意味着我可以在其中看到很多jar文件和大量代码,但我不知道如何使用tattle一举。

在官方文档中,他们提到了jboss-tattletale.properties,以及我如何设置/使用它。

EN

回答 3

Stack Overflow用户

发布于 2019-07-13 17:56:13

我也有同样的问题,这个解决方案也适用于我。(下载了最新的javaassist )

有趣的是,tattletale本身就表明tattletale包含javaassist。

票数 1
EN

Stack Overflow用户

发布于 2016-10-14 10:01:15

以下步骤对我有效:

  1. 从jboss-javassist-javassist-rel_3_22__cr1-2-g6a9079a.zip下载http://jboss-javassist.github.io/javassist/
  2. 把它提取到一个位置
  3. 到那个位置复制javassist.jar
  4. 转到你的塔特莱斯特-1.2.0.Beta2.jar所在的位置
  5. 粘贴javassist.jar
  6. 在此路径上打开命令提示符
  7. 运行命令java -jar tattletale 1.2.0.Beta2.jar path_to_application_archive output_path
票数 0
EN

Stack Overflow用户

发布于 2020-12-29 20:09:24

我继承了一个配置为使用此插件的旧Maven项目,并获得了相同的javassist错误。插件依赖项可以如图所示进行调整,以使错误停止。

代码语言:javascript
复制
<plugin>
    <groupId>org.jboss.tattletale</groupId>
    <artifactId>tattletale-maven</artifactId>
    <version>1.2.0.Beta2</version>
    <executions>
        <execution>
            <goals>
                <goal>report</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <!-- This is the location which will be scanned for generating tattletale reports -->
        <source>${project.build.directory}/${project.artifactId}/WEB-INF/lib</source>
        <!-- This is where the reports will be generated -->
        <destination>${project.build.directory}/site/tattletale</destination>
    </configuration>
    <dependencies>
        <dependency>
            <groupId>org.javassist</groupId>
            <artifactId>javassist</artifactId>
            <version>3.27.0-GA</version>
        </dependency>
    </dependencies>
</plugin>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36693115

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档