将Java项目导出为.jar,包括.Java源代码并保留外部库依赖项

将Java项目导出为.jar,包括.Java源代码并保留外部库依赖项,java,eclipse,Java,Eclipse,我知道如何将Java项目导出为.jar,包括.Java源代码(只需将其导出为普通的.jar),以及如何将其导出为仅包含.class文件的runnable.jar(只需选择runnable.jar导出样式)。如果项目不依赖外部库,我注意到两个.jar都可以通过命令行正确运行 问题:如果项目包含对构建路径中添加的某个外部库的依赖项,则会导致导出为可运行的.jar正确工作,而普通的.jar则无法正常工作,因为从命令行启动时再也找不到外部库 注释:外部库作为.jar添加到项目中的文件夹“lib”中,并从

我知道如何将Java项目导出为.jar,包括.Java源代码(只需将其导出为普通的.jar),以及如何将其导出为仅包含.class文件的runnable.jar(只需选择runnable.jar导出样式)。如果项目不依赖外部库,我注意到两个.jar都可以通过命令行正确运行

问题:如果项目包含对构建路径中添加的某个外部库的依赖项,则会导致导出为可运行的.jar正确工作,而普通的.jar则无法正常工作,因为从命令行启动时再也找不到外部库

注释:外部库作为.jar添加到项目中的文件夹“lib”中,并从那里添加到构建路径中

我希望能够导出Java项目,同时包含.Java源代码并保留对外部库的依赖关系,以便在通过命令行启动时运行它。有什么建议吗?我所能找到的只是“将其导出为runnable.jar”,但这将隐藏.java源代码


编辑:有人能解释为什么会发生这种情况吗?

如果您不需要自动方式,可以通过以下手动步骤实现:

  • 首先将其导出为可运行jar(a.jar)
  • 第二次导出为带源的jar(b.jar)
  • 使用7-zip或其他归档工具将源代码集成到可运行的jar中。打开这两个jar,并将包含源代码(包名的第一部分)的文件夹从jar(b.jar)拖到runnable jar(a.jar)的z-zip窗口中