Java 可以确定JAR中每个类的源文件吗?

Java 可以确定JAR中每个类的源文件吗?,java,jar,utility,Java,Jar,Utility,我正试图写一个实用程序来减少一些常见的错误 我在使用编译成jar文件的源代码管理java代码时遇到了一些问题。 错误,例如忘记将文件添加到存储库或忘记提交 对已修改文件的更改(在所有文件在本地工作之后) 我遇到的一个障碍是试图确定哪些.java文件 用于在jar文件中生成类文件。 这些信息存储在什么地方了吗? 我能想到的唯一解决方案是获取.class文件的列表 在jar文件(jar-tf)中,忽略名称中带有“$”的所有类文件, 将字符串的“.class”部分替换为“.java”,最后添加适当的

我正试图写一个实用程序来减少一些常见的错误 我在使用编译成jar文件的源代码管理java代码时遇到了一些问题。 错误,例如忘记将文件添加到存储库或忘记提交 对已修改文件的更改(在所有文件在本地工作之后) 我遇到的一个障碍是试图确定哪些.java文件 用于在jar文件中生成类文件。 这些信息存储在什么地方了吗? 我能想到的唯一解决方案是获取.class文件的列表 在jar文件(jar-tf)中,忽略名称中带有“$”的所有类文件, 将字符串的“.class”部分替换为“.java”,最后添加适当的 用于定位用于生成.jar的.java文件的路径的前缀 我想知道是否有更好的办法。
谢谢

我不确定我是否能很好地理解从类文件生成Java文件名的需要

我可以想出三种解决办法:

  • 最简单的方法是将java文件作为jar文件的一部分。这可以使用任何构建工具甚至eclipse来执行
  • 您已经在做的事情(列出,然后重命名)
  • 编写一个实用程序,在其中列出jar文件中的每个类文件。然后使用Java反射API找出类

  • 如果我正在编写调试器,我应该能够加载正在调试的可执行文件,然后显示其源代码。我基本上希望确保用于生成jar的所有源都在存储库中(我没有忘记svn添加)