0

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

第一张图片:

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

第二张图片:

http://buuid.com/errorafterPdfLoad.png "NullPointerException 错误"

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

4

3 回答 3

0

如果您使用的是maven,我可以建议您使用shade 插件来生成具有所有依赖项(和清单:-))的可运行 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以构建一个 jar,您可以使用java -jar jarfilename.jar.

于 2013-06-14T17:23:41.090 回答
0

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

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


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


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

因此请检查以下字段:Manifest-Version: 1.0 Created-By: 1.7.0_06 (Oracle Corporation) Main-Class: NameOfClassWithMain

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

于 2013-06-14T23:03:21.190 回答
0

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

于 2013-06-14T17:18:32.853 回答