当我从eclipse运行时,我的程序运行得非常好,但我将其打包到一个可执行的JAR中并从命令行运行,它的运行速度要慢得多(几乎慢了五倍)。我甚至在执行jar Java-Xms40M-Xmx512M-jar jarFile.jar时设置了-vmargs。我的机器上没有任何旧版本的Java。我不能理解我在这里错过了什么。在使用相同版本的Java和相同的vm参数的情况下,eclipse如何更快地运行相同的程序。任何帮助都将不胜感激。谢谢你,卡蒂克
w3nuxt5m1#
我们也遇到过类似的问题,但问题是,当从eclipse中将Java代码作为可运行的JAR文件导出时,我们选择了一个选项“将所需的库打包到生成的JAR中”。这是将所有引用的库作为JAR文件放在可运行的JAR中,而JAR可能在每次运行时都会被解包。相反,我们在创建可运行的JAR文件时使用了“将所需的库提取到生成的JAR中”选项,并且JAR的执行速度迅速提高--几乎与在eclipse中运行代码时相同。
xmd2e60i2#
您很可能会将大量内容打印到System.out/System.err(直接打印或通过日志记录)。Windows终端仿真器需要呈现您的输出,并且它的执行速度比Eclipse慢。尝试将所有输出重定向到文件或NUL,然后再次测量。
vnzz0bqm3#
在创建可运行的JAR文件时,不要选中“将所需的库打包到生成的JAR中”,而是使用“将所需的库解压缩到生成的JAR中”选项。这节省了很多时间。
carvr3hs4#
我也面临着同样的问题。eclipse运行应用程序需要5秒,而jar需要3分钟。这是由于我导出可运行的jar文件的方式所致。这主要是在eclipse中作为可运行的jar导出的两种方法。
eclipse
jar
1)。将所需的库打包到JAR中
4条答案
按热度按时间w3nuxt5m1#
我们也遇到过类似的问题,但问题是,当从eclipse中将Java代码作为可运行的JAR文件导出时,我们选择了一个选项“将所需的库打包到生成的JAR中”。这是将所有引用的库作为JAR文件放在可运行的JAR中,而JAR可能在每次运行时都会被解包。相反,我们在创建可运行的JAR文件时使用了“将所需的库提取到生成的JAR中”选项,并且JAR的执行速度迅速提高--几乎与在eclipse中运行代码时相同。
xmd2e60i2#
您很可能会将大量内容打印到System.out/System.err(直接打印或通过日志记录)。Windows终端仿真器需要呈现您的输出,并且它的执行速度比Eclipse慢。
尝试将所有输出重定向到文件或NUL,然后再次测量。
vnzz0bqm3#
在创建可运行的JAR文件时,不要选中“将所需的库打包到生成的JAR中”,而是使用“将所需的库解压缩到生成的JAR中”选项。这节省了很多时间。
carvr3hs4#
我也面临着同样的问题。
eclipse
运行应用程序需要5秒,而jar
需要3分钟。这是由于我导出可运行的jar
文件的方式所致。这主要是在
eclipse
中作为可运行的jar
导出的两种方法。1)。将所需的库打包到JAR中
jar
文件添加到jar
中。这是最干净的,因为它用库JAR分隔应用程序类文件。2)。将所需的库解压缩到生成的JAR中
jar
文件中。因此,您的Jar文件将包括您的应用程序类文件以及您的应用程序使用的所有库的类文件。eclipse
IDE中运行一样运行。*eclipse
IDE中运行一样,只需5秒。