【发布时间】:2017-11-28 20:55:56
【问题描述】:
我没有使用任何 IDE 并尝试修复在 tomcat 中部署的 war 文件的一些错误。我正在尝试寻找包的来源,而错误的行似乎需要参数,并且已从诸如
之类的某些包中导入import com.somefirm.somepackage.someClass;
以下问题没有回答我的问题:
In eclipse determine which jar file a class is from
How can I find files imported in a java class
我想知道有什么方法可以手动找到import 的来源。有没有可能?类如何查找要导入的包?
编辑 1:用换行符分隔链接。
编辑 2:“我目前没有使用任何 IDE”这个问题有点晚了。所以将 Am not using IDE 添加到第一行。
编辑 3:使问题更加清晰,说明我为什么需要它。
编辑 4:添加了这些编辑。感谢@Jude-niroshan 和@ErwinBolwidt
【问题讨论】:
-
对于大多数 IDE,如果您将
CTRL + click放入 import 语句的someClass,IDE 将打开该类的源代码(反编译或可能是实际源代码,如果您将依赖项链接到源代码代码)。然后,您可以交叉引用您的目录结构以查看哪个 JAR 提供了此类。 -
@AyushyaChitransh 改变问题的含义以使现有答案和 cmets 无效是真的令人讨厌和糟糕的形式 - 特别是当您没有表明您已编辑问题时,
-
有一个名为 Jar Finder(或类似的东西)的工具,它可以在一个充满 JAR 的文件夹中搜索类。我认为这可能是您唯一的选择,在所有 JAR 依赖项中搜索您的类。请注意,如果您使用的是 Maven 或 Gradle 之类的东西,这会容易得多。如果可能,请考虑进行切换。
-
不,您在编辑之前的问题是“目前没有使用任何 IDE。” - 所以建议您如何使用 IDE回答您的问题。
-
类在运行时从类路径中解析。如果您仅限于“盒子上已有的工具”,因为 jar 文件只是 zip 文件,您可以使用 zip 命令(或 JDK 中的 jar 命令)列出 war 中每个 jar 的内容,并使用 grep 获取目录/ 文件名(JVM 映射到包和类名)
标签: java