2017-02-22 21 views
0

我正在构建基于J2EE的企业级Web应用程序。项目包含超过1700个不同模块的类。想知道项目中没有初始化的类

某些模块并未在人员中使用。

我怎么知道哪些类不使用?

我们已经在采样器选项卡中观看了JVisualVm。但它只显示内存中的活动类。但它不是持久的。 并且还没有显示未初始化的类(休眠类)

预期结果:休眠类(不包括依存关系)名单

例如:

封装结构:

root 
|---- com 
| |---- A.java 
| |---- B.java 
| |---- C.java 
|---- org 
| |---- D.java 
| |---- E.java 
| |---- F.java 

所有这个类都有注释@Path其中一些从前端调用,其中一些不通过ajax。有没有什么方法可以让我们知道哪个类正在被调用或有一个列表?

正如你所看到的,它在java中使用REST有可能知道每当一个新类由Rest休眠时初始化一些如何?

+0

正是你想要加载的所有类?依赖?或加载类? –

+0

已编辑的问题。我只想要加载的裁剪类不依赖关系 –

+0

观察运行时行为只能给你一个类被使用的信息,而不是它没有被使用。稍后可能需要它。 – Henry

回答

0

也许greys-anatomy可以帮助你。

SC:搜索由JVM

https://github.com/oldmanpushcart/greys-anatomy/wiki/Commands#sc

ga?>sc -Sd Address* 
    +------------------+---------------------------------------------------------------+ 
    |  class-info | Address              | 
    +------------------+---------------------------------------------------------------+ 
    |  code-source | /Users/vlinux/temp/           | 
    +------------------+---------------------------------------------------------------+ 
    |    name | Address              | 
    +------------------+---------------------------------------------------------------+ 
    |  isInterface | false               | 
    +------------------+---------------------------------------------------------------+ 
    |  isAnnotation | false               | 
    +------------------+---------------------------------------------------------------+ 
    |   isEnum | false               | 
    +------------------+---------------------------------------------------------------+ 
    | isAnonymousClass | false               | 
    +------------------+---------------------------------------------------------------+ 
    |   isArray | false               | 
    +------------------+---------------------------------------------------------------+ 
    |  isLocalClass | false               | 
    +------------------+---------------------------------------------------------------+ 
    | isMemberClass | false               | 
    +------------------+---------------------------------------------------------------+ 
    |  isPrimitive | false               | 
    +------------------+---------------------------------------------------------------+ 
    |  isSynthetic | false               | 
    +------------------+---------------------------------------------------------------+ 
    |  simple-name | Address              | 
    +------------------+---------------------------------------------------------------+ 
    |   modifier |                | 
    +------------------+---------------------------------------------------------------+ 
    |  annotation |                | 
    +------------------+---------------------------------------------------------------+ 
    |  interfaces |                | 
    +------------------+---------------------------------------------------------------+ 
    |  super-class | java.lang.Object            | 
    +------------------+---------------------------------------------------------------+ 
    |  class-loader | [email protected]      | 
    |     | `[email protected]     | 
    +------------------+---------------------------------------------------------------+ 
    |   fields | modifier : private           | 
    |     |  type : int            | 
    |     |  name : addressId           | 
    |     |                | 
    |     | modifier : private           | 
    |     |  type : java.lang.String         | 
    |     |  name : addressName          | 
    |     |                | 
    |     | modifier : private           | 
    |     |  type : double            | 
    |     |  name : avg            | 
    +------------------+---------------------------------------------------------------+ 

    Affect(row-cnt:1) cost in 6 ms.