部署Java应用程序。怎样

部署Java应用程序。怎样,java,eclipse,export,compilation,executable-jar,Java,Eclipse,Export,Compilation,Executable Jar,我是Java(和Eclipse)新手,但我已经大量使用了.NET(和Visual Studio)。我还知道如何编译C/C++代码之类的东西。我知道最后我会得到一个EXE或一个漂亮的二进制文件,可以从命令行运行 我一直在制作一个使用一些外部库的Java实用程序。我需要将其编译成一个可执行文件,可以在unix机器上从命令行运行,但我找不到任何方法来实现这一点 我可以在Eclipse中构建和运行/调试,但这对我没有用,因为这段代码将在Web服务器上运行。我只需要将所有依赖项编译到一个文件中,但在Goo

我是Java(和Eclipse)新手,但我已经大量使用了.NET(和Visual Studio)。我还知道如何编译C/C++代码之类的东西。我知道最后我会得到一个EXE或一个漂亮的二进制文件,可以从命令行运行

我一直在制作一个使用一些外部库的Java实用程序。我需要将其编译成一个可执行文件,可以在unix机器上从命令行运行,但我找不到任何方法来实现这一点

我可以在Eclipse中构建和运行/调试,但这对我没有用,因为这段代码将在Web服务器上运行。我只需要将所有依赖项编译到一个文件中,但在Google上搜索数小时后,我能找到的最好的东西是Eclipse的Fat JAR插件,使用该插件后,我在尝试运行该文件时出现以下错误:

Exception in thread "main" java.lang.NoClassDefFoundError: Network/jar
这真的让我困惑,因为这是一件非常重要的事情,我确信我一定错过了一些显而易见的东西,但正如我所说的,经过几个小时的搜索,我什么也没有得到


我真的很感激你能给我的任何帮助。谢谢。

您正在做一些标准的事情,并且正在使用eclipse。这意味着,在你的情况下,Maven是你的朋友。下载并安装。Maven最擅长管理依赖项。因此,创建一个包含依赖项的jar将非常非常简单。在web和StackOverflow中有数千个示例。如果您在设置时遇到问题,请对此进行评论,我可以为您指出正确的方向。

听起来您在服务器上的类路径需要修改,以获取包含网络类的jar文件。你是如何执行你的程序的?您在-cp选项中放置了什么路径

如果您不确定如何查找jar文件中的内容,请运行jar tf,这将列出打包的类。验证类路径中的一个JAR是否包含它所说的缺少的类


请提供更多详细信息,我们可以帮助您解决问题。

如果您使用(可以在每个主要IDE上使用)构建java应用程序,那么您可以使用maven构建着色jar文件;这是一个包含所有依赖项的jar文件

着色jar可以从命令行运行,如下所示:

java -jar myjar.jar command line options

我想我应该先解释一些基本知识。如果Java类具有
publicstaticvoidmain(String[]args)
方法,那么它可以作为应用程序运行。如果它具有此方法,则可以通过以下方式从命令行运行它:

java my.package.MyClass <attributes>
java my.package.MyClass
在启动应用程序之前,您需要确保所有必需的.jar文件(以及您自己的类文件夹的根,如果您没有从类中创建jar)都位于
CLASSPATH
环境变量中


这些是绝对的基础。当您正在构建一个更复杂的应用程序或一个用于分发的应用程序时,您可能会使用maven或ant或其他一些使您的生活更轻松的工具。

您上面的问题是类路径问题。大多数情况下,在学习java时,您会在类路径上绊倒。让一个行业标准的工具为您管理它。见我下面关于Maven的帖子。当你遵循惯例时,这真的很好。当你不在的时候真的很沮丧。对你来说,这会让生活更轻松。谢谢。我用胖罐子构建了这个罐子,所以所有的依赖项都在里面。我猜-jar选项告诉java情况就是这样。这很好用。非常感谢。这表明我对Java知之甚少。语言看起来很简单,但设置起来却有点复杂。我不认为我需要设置类路径,因为依赖项都编译到jar中。好的,如果静态链接它们,那么就不必设置类路径。我不确定您是如何运行命令来执行程序的。看起来您缺少了-jar选项。