java - 共享可执行文件.jar文件

时间:2015-06-18 19:14:48

标签: java netbeans jar

我在NetBeans中编写了一个程序,现在想与我的同事分享。但是,当他尝试在他的计算机上运行它时,他收到一条错误消息:

"Could not find the main class: excelcomparator.ExcelComparator. Program will exit."

这里有一个令人困惑的部分:我在拥有NetBeans的笔记本电脑上写了这个,并确保它有效,将dist文件夹复制到闪存驱动器上,然后在我的计算机上运行它。它工作正常。当我通过电子邮件发送给我的同事时,他得到了这个错误。

根据我所看到的,一些解决方案是从命令行运行.jar。虽然这可能有效,但我需要双击文件。

我通过电子邮件将我的同事发送到一个压缩文件夹,是否有可能解压缩整个文件夹也搞砸了.jar文件(不知道为什么应该这样,但包括任何可能有帮助的东西)?

这是.jar文件中的MANIFEST.mf。文件末尾有一个回车符,它不会很好地复制到这个文本框中:

Manifest-Version: 1.0
Ant-Version: Apache Ant 1.9.4
Created-By: 1.7.0_71-b14 (Oracle Corporation)
Class-Path: lib/poi-3.12-20150511.jar lib/poi-examples-3.12-20150511.j
 ar lib/poi-excelant-3.12-20150511.jar lib/poi-ooxml-3.12-20150511.jar
  lib/poi-ooxml-schemas-3.12-20150511.jar lib/poi-scratchpad-3.12-2015
 0511.jar
X-COMMENT: Main-Class will be added automatically by build
Main-Class: excelcomparator.ExcelComparator

我发送了dist文件夹,其中包含lib文件夹,其中包含所有其他.jars。

如果我需要提供任何其他相关信息,请与我们联系。谢谢!

2 个答案:

答案 0 :(得分:0)

如果您希望JAR可以双击,那么您应该将所有依赖项捆绑到一个JAR文件中。

您可以使用maven程序集插件实现此目的:http://maven.apache.org/plugins/maven-assembly-plugin/usage.html

如果您不知道如何使用Maven,Eclipse有一个很好的向导。我不确定它在NetBeans上是如何工作的,但是同样的问题已被多次询问,例如这里Netbeans Export to Jar, include all library files

答案 1 :(得分:0)

为了完成这个,我会写出最终为我工作的东西:

根据Franz Becker的建议based on this question,我将整个程序捆绑到一个.jar文件中。

我的同事计算机上仍然出现同样的错误,所以根据我看到的其他建议,我猜测问题是基于我们计算机上安装的不同版本的Java。我所做的是将程序重新编译为Java的早期版本,该版本适用于从那时起和之后的任何版本(其他人建议在用户计算机上重新安装Java。在大多数情况下这有点太不现实了。)

更改合规性级别(在Eclipse中):在Package Explorer中右键单击项目,选择属性。在左侧的选项中选择Java Compiler。取消选中'在Java构建路径'中使用执行环境中的合规性[默认目标JavaSE],并将“编译器合规性级别”更改为您选择的级别(我选择了最低的可用选项,1.3,因为我假设高于该值不会是个问题。)

然后我导出了文件(文件 - >属性 - > Java - > Runnable JAR文件),并且有一个可用的,可点击的.jar。

感谢大家的帮助!