标签: executable-jar

为什么我的.jar文件比eclipse中的程序运行得慢?

我有一个java程序,它从数据库中读取大量输入数据,对其进行操作,然后将数据写回另一个数据库(使用ODBC驱动程序,excel和访问数据库,在新的Windows 7机器上).该程序从eclipse运行大约需要17分钟,但是当我创建一个可执行的.jar文件时,它需要额外的10分钟才能运行(总共27分钟).

到目前为止,我发现慢速jar文件(通过搜索SO和谷歌)的两个原因是它们被压缩,并且写入命令提示符(或错误日志)比在eclipse中的控制台需要更长的时间.我尝试创建一个未压缩的jar文件,它只加速了大约10秒钟(这可能是完全随机的,因为运行时间大约相差30秒).我System.out.println()在程序中只有大约10个命令,因此不应该减慢它的速度.

关于是什么导致它运行得如此之慢的任何想法,如果有任何方法我可以再次加速?如果有任何其他可能相关的细节我应该包括在内,请告诉我.谢谢!

java eclipse performance jar executable-jar

8
推荐指数
2
解决办法
7732
查看次数

如何为Maven构建的可执行JAR指定JVM参数

使用Maven构建可执行JAR时,如何指定执行JAR时使用的JVM参数?

我可以使用指定主类<mainClass>.我怀疑JVM参数有类似的属性.特别需要指定最大内存(例如-Xmx500m).

这是我的程序集插件:

  <plugin>
    <artifactId>maven-assembly-plugin</artifactId>
    <configuration>
      <descriptorRefs>
        <descriptorRef>jar-with-dependencies</descriptorRef>
      </descriptorRefs>
      <archive>
        <manifest>
          <addClasspath>true</addClasspath>
          <mainClass>com.me.myApplication</mainClass>
        </manifest>
      </archive>
    </configuration>
  </plugin>
Run Code Online (Sandbox Code Playgroud)

编辑/跟进:根据本文本文,似乎可能无法为可执行JAR指定JVM参数.

java maven-2 jar executable-jar

7
推荐指数
1
解决办法
2万
查看次数

Eclipse:导出到.jar并包含资源文件(ANT)

我们在eclipse中的项目大致显示以下文件夹:

application
    - src
    - JRE System Library [1.6]
    - Referenced Libraries
    - lib
    - rsc
Run Code Online (Sandbox Code Playgroud)

在我们的项目中,我们想使用File> Export ...> Executable JAR

好吧,除了一些例外:如果我们想运行我们的application.jar,我们仍然需要将文件夹rsc /复制到application.jar的相同位置.

在rsc /中,我们有其他文件夹来分隔不同的部分.基本上,我们使用代码加载碎片(有点改变,但路径样式是正确的)

strUrl = "file:rsc/properties/Constants.properties";
url = new URL(strUrl);
ImageIcon icon = new ImageIcon(url);
Run Code Online (Sandbox Code Playgroud)

我可以右键单击rsc /> Build Path> Use as Source Folder.

但这不起作用,因为eclipse不会自动将rsc文件夹复制到bin/-folder中.然后我们不能再从终端运行它(没有打包到jar)

编辑:为什么eclipse无法正确处理?为什么"嵌套"输出文件夹有问题?在Build Path对话框的Source-tab中,我可以轻松添加rsc/-folder,输出文件夹设置为bin/rsc /,但它似乎无法放置嵌套文件夹...


编辑2:现在我已经能够创建一个xml文件来使用ant构建东西,并以某种方式设法将rsc文件夹包含在jar中.由于相同的错误仍然无法运行.我是否真的需要检查它们是否在JAR中的资源路径?JAR的内容现在如下:

META-INF/
META-INF/MANIFEST.MF
configurator/
controller/
editor/
gui/
logic/
networking/
rsc/
rsc/gamesettings/
rsc/levels/
rsc/pics/
rsc/properties/
util/
Run Code Online (Sandbox Code Playgroud)

但Java仍然讨厌我,并抛出java.io.FileNotFoundException: rsc/properties/Constants.properties大约100行的堆栈跟踪.


任何人都知道如何做到这一点?感谢和问候

eclipse ant executable-jar java-6

7
推荐指数
1
解决办法
3万
查看次数

部署不是.wars的Java Server应用程序

是否有任何集成良好的应用程序管理堆栈,允许构建,部署和更新.war作为服务器运行的非Java应用程序?例如,作为服务器的消息使用者(但不是Web服务器并且没有Servlet),或.jar嵌入了Jetty的可执行文件?

构建和部署.wars非常简单:Maven有战争原型,Jenkins有一堆插件用于将.war文件部署到各种应用程序服务器,其中大多数都接受在运行时上传新的Web应用程序.像Elastic Beanstalk这样的工具使这个过程更加容易,与服务器环境的管理联系在一起.

相比之下,部署可执行文件.jar似乎重新发明了轮子.人们需要理清阴影依赖关系的最佳方法,并使用大量的Maven插件创建可执行的人工制品,将此工件存放在某处,然后找到在目标服务器上安装它的方法,并在必要时替换/升级它(Debian软件包)这将是一种方式).

这对我来说似乎非常"手动",以至于将应用程序部署.war到应用程序服务器似乎是有利的,即使它们不适合这样的环境,只是为了获得工具支持的好处.

java deployment build-automation automation executable-jar

7
推荐指数
1
解决办法
1122
查看次数

Intellij Javafx神器 - 你是怎么做到的?

我一直在努力将我的javafx应用程序转换为jar文件.我正在使用Java 1.7 update 7.

Oracle有一些信息,但它似乎分散在各处.Intellij几乎正在完成这项工作,但我收到以下错误:

java.lang.NoClassDefFoundError: javafx/application/Application
Run Code Online (Sandbox Code Playgroud)

这似乎说我需要告诉java jfxrt.jar在哪里...如果我将这个jar添加到我的类路径信息中为intellij中的清单构建 - ctrl + shift + alt + s - >工件 - >输出布局选项卡 - >类路径,然后我得到另一个错误:

 Could not find or load main class com.downloadpinterest.code.Main
Run Code Online (Sandbox Code Playgroud)

在我的类路径中包含jfxrt.jar似乎很奇怪...

我也试过创建一个蚂蚁脚本,但我觉得IntelliJ是90%的方式 - 我只需要一些帮助来弄清楚为什么我需要包含jfxrt.jar,以及为什么我的主类没有找到(我猜我需要以某种方式将它添加到类路径?).

谁能让我知道发生了什么?我之前有一个基本的gui工作正常,但JavaFX似乎让生活变得复杂!

javafx jar intellij-idea executable-jar artifact

7
推荐指数
1
解决办法
1万
查看次数

Eclipse:手动选择可执行jar文件的主类

我有java项目,很多类都有主要方法(仅用于测试目的).当我通过Eclipse创建可执行jar文件时,Eclipse将自动选择哪个文件是主类.(而且经常是错的).

还有另一种方法是在Jar文件中清除文件中的主类.但是,它非常方便.所以,我的问题是:在创建Jar文件时如何手动选择.

谢谢 :)

java eclipse executable-jar

7
推荐指数
1
解决办法
3万
查看次数

直接从Maven存储库执行JAR文件

假设我们有一个Java 应用程序,而不是一个可以通过Maven central获得的库.例如,一个这样的项目是jol,它在Maven central中有相应的CLI接口.

据我所知,与库的主要区别在于相应的JAR文件包含一个具有适当main()方法的类,以及可选Main-Class:的JAR清单中的相关头.如果将此类工件用作项目的依赖项,Maven将很乐意将JAR文件及其依赖项下载到本地存储库,就像对任何其他工件一样.

是否可以使用Maven直接执行这样的应用程序,而无需设置Maven项目?

通过设置JVM类路径以使依赖项可用,该exec:java插件可以很好地用于本地项目.用户不必担心JAR或.class文件位置等.不幸的是,从我所知道的,它还需要一个封闭的Maven项目,因此不能从任意命令行提示中使用它.

java executable-jar execution maven

7
推荐指数
1
解决办法
990
查看次数

验证来自已签名jar的http请求

我正在为我的webapplication编写客户端,并且我使用我的开发人员证书签署了发布jar,如何验证请求休息服务来自我签名的jar?

java executable-jar digital-signature rest-security

7
推荐指数
1
解决办法
214
查看次数

apache spark:带有所有依赖项的build jar的akka​​版本错误

我已经使用maven(mvn clean compile assembly:single)和以下pom文件从我的spark应用程序构建了一个jar文件:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>mgm.tp.bigdata</groupId>
  <artifactId>ma-spark</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>ma-spark</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <repositories>
    <repository>
      <id>cloudera</id>
      <url>https://repository.cloudera.com/artifactory/cloudera-repos/</url>
    </repository>
  </repositories>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-core_2.10</artifactId>
        <version>1.1.0-cdh5.2.5</version>
    </dependency>
    <dependency>
        <groupId>mgm.tp.bigdata</groupId>
        <artifactId>ma-commons</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </dependency>
  </dependencies>

  <build>
  <plugins>
    <plugin>
      <artifactId>maven-assembly-plugin</artifactId>
      <configuration>
        <archive>
          <manifest>
            <mainClass>mgm.tp.bigdata.ma_spark.SparkMain</mainClass>
          </manifest>
        </archive>
        <descriptorRefs>
          <descriptorRef>jar-with-dependencies</descriptorRef>
        </descriptorRefs>
      </configuration>
    </plugin>
  </plugins>
</build>
</project>
Run Code Online (Sandbox Code Playgroud)

如果我在终端上使用java -jar ma-spark-0.0.1-SNAPSHOT-jar-with-dependencies.jar运行我的应用程序,我会收到以下错误消息:

VirtualBox:~/Schreibtisch$ java -jar ma-spark-0.0.1-SNAPSHOT-jar-with-dependencies.jar
2015-Jun-02 12:53:36,348 [main] org.apache.spark.util.Utils
 WARN  - Your hostname, proewer-VirtualBox resolves to a …
Run Code Online (Sandbox Code Playgroud)

java jar executable-jar maven apache-spark

7
推荐指数
2
解决办法
6588
查看次数

如何将.class文件转换为.jar文件中的.java文件

我有一个.jar文件,当我提取它时,它给了我该jar文件中存在的所有.class文件.

我使用http://jd.benow.ca/工具反编译了所有的.class文件,但我希望所有.class文件都保存到.java文件中.

现在我只能看到代码,但扩展名没有转换为.java.

任何人请帮助我.

java jar executable-jar .class-file

7
推荐指数
1
解决办法
2万
查看次数