当我在eclipse中运行程序时,它能够完美地工作。但是当我将其打包成可执行的jar文件并从命令行运行时,它运行得非常慢(几乎慢了五倍)。我在执行jar文件时甚至设置了-vmargs:
java -Xms40m -Xmx512m -jar jarFile.jar
我的机器上没有任何旧版本的Java。我不明白我错过了什么。如何让eclipse使用相同的Java版本和vm参数运行同样的程序却更快?感谢任何帮助。
我们遇到了类似的问题,但问题出在我们在Eclipse中将Java代码导出为可运行的jar文件时选择了"将所需库包含在生成的jar中"选项。这会将所有的引用库作为jar文件放入可运行的jar文件中,每次运行时都需要解压缩。相反,我们在创建可运行的jar文件时使用了"将所需库提取到生成的jar中"选项,使得jar文件的执行速度大大提高——几乎与在Eclipse中运行代码时一样快。
我遇到了相同的问题。在eclipse
上运行应用程序需要5秒,而jar
则需要3分钟。这是由于我导出可执行的jar
文件的方式不同造成的。
eclipse
中主要有两种将其导出为可运行的jar
的方法。
1). 将所需库打包进jar文件
jar
中添加库的实际jar
文件。这样做很干净,因为它将应用程序类文件与库JAR文件分开。2). 在生成的jar文件中提取所需库
这种方法将仅从应用程序使用并包含在可运行的jar
文件中的库中提取实际的类文件。
结果,您的Jar文件将包括您的应用程序类文件以及由您的应用程序使用的所有库的类文件。
这种方法使可运行的jar文件的表现就像在您的eclipse
IDE中运行一样。
使用这种方式,我能够在没有任何延迟的情况下运行jar应用程序,
并且完成的时间与在eclipse
IDE中运行一样,只需要5秒钟。