通过cmd创建包含库,类和java文件的可执行jar

时间:2013-06-14 17:10:45

标签: java executable-jar

我已经在这里和那里尝试过一些东西,我已经包含了我的所有类,库,MANIFEST.MF,整个java / bin,以及eclipse创建的org.eclipse文件,以及.classpath,.object文件在一个名为testing的文件夹中,我在下面附加了2个cmd进度图像。第一张图片完美地创建了一个可执行的jar,但是当它被启动时,当我按下按钮上传一个pdf文件时,它会给出下面图2中的错误。

第一张图片:

http://buiud.com/creating.png“创造一个罐子就好了”

第二张图片:

http://buiud.com/errorafterPdfLoad.png“NullPointerException错误”

抱歉,由于缺乏声誉,我无法添加图片。

3 个答案:

答案 0 :(得分:0)

清单文件中的Class-Path条目已损坏,因此JVM找不到包含给出错误的类的jar。

答案 1 :(得分:0)

如果您使用的是 maven ,我建议您使用shade plugin生成具有所有依赖关系(以及清单 :-))的可运行的jar-板。

将此信息包含在 pom.xml

<project>
  ...
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-shade-plugin</artifactId>
        <version>2.1</version>
        <executions>
          <execution>
            <phase>package</phase>
            <goals>
              <goal>shade</goal>
            </goals>
            <configuration>
              <transformers>
                <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                  <!-- your main class: -->
                  <mainClass>org.sonatype.haven.HavenCli</mainClass>
                </transformer>
              </transformers>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
  ...
</project>

然后执行mvn clean package shade:shade以构建一个可以使用java -jar jarfilename.jar从命令行运行的jar。

答案 2 :(得分:0)

首先检查您的MANIFEST文件。您无需添加“.MF”,但最好使用.txt格式。

然后确保正确设置MANIFEST.txt 看这个警告


警告:文本文件必须以新行或回车结束。如果不以新行或回车结束,则不会正确解析最后一行。


http://docs.oracle.com/javase/tutorial/deployment/jar/appman.html

请检查字段: 清单 - 版本:1.0 创建者:1.7.0_06(Oracle Corporation) Main-Class:NameOfClassWithMain

所以在“Main-Class:NameOfClassWithMain”之后再换一行或回车!如果您错过了该步骤,此字段将在解析后消失。 还要仔细检查包中的所有文件。