使用外部Jar文件打包和分发java应用程序

使用外部Jar文件打包和分发java应用程序,java,jar,package,Java,Jar,Package,到目前为止,我的java应用程序只包含我自己的.java文件。 然而,我当前的项目使用Antlr,Antlr的一些功能包含在一个JAR文件中,我必须将该文件导入eclipse。 分发我的应用程序以便最终用户可以运行它的最佳方式是什么 我已经阅读了一些关于堆栈溢出的问题,这些问题与类似的问题有关。。。一些答案建议将我的项目打包为JAR文件,而另一些建议使用Maven之类的工具。 首先,我对Maven几乎一无所知,但从我所读到的内容来看,对于这样一个简单的项目来说,这似乎有些过分了。至于JAR文件,

到目前为止,我的java应用程序只包含我自己的.java文件。 然而,我当前的项目使用Antlr,Antlr的一些功能包含在一个JAR文件中,我必须将该文件导入eclipse。 分发我的应用程序以便最终用户可以运行它的最佳方式是什么

我已经阅读了一些关于堆栈溢出的问题,这些问题与类似的问题有关。。。一些答案建议将我的项目打包为JAR文件,而另一些建议使用Maven之类的工具。
首先,我对Maven几乎一无所知,但从我所读到的内容来看,对于这样一个简单的项目来说,这似乎有些过分了。至于JAR文件,我知道它们是.java文件的集合,类似于zip档案。我遇到的JAR文件有两种变体,称为“自解压JAR”和可执行JAR。他们之间有什么区别?我应该使用哪一个?

Maven与项目大小无关。Maven是独立的,您的最终用户不会知道您用Maven打包了JAR。 这类任务有几个插件。在说这是过度杀伤力之前试一下。Maven还可以帮助您管理依赖项。如果你喜欢Ant,还有一个插件可以运行Ant任务

有人推荐,你问过自己为什么吗?每一个伟大的工具,比如Maven,都在解决一些(常见的)问题,这就是成功的原因


关于JAR的类型:您的JAR是必须安装还是只需双击并按原样运行?现在你知道你想要什么样的JAR了。

我希望在程序分发到客户端后,能够从命令行运行程序。神奇的是main方法。如果要通过命令行执行,必须处理main方法的args参数。此时,您可以决定下一步要做什么,启动一些JFrames或执行一些计算并编写输出或启动安装向导。JAR类型并不是什么特别的东西,它只是主要的方法内容。