当前位置: 首页 > 知识库问答 >
问题:

java-共享一个可执行的. jar文件

轩辕亮
2023-03-14

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

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

让人困惑的是:我在装有NetBeans的笔记本电脑上写了这篇文章,为了确保它能正常工作,我将dist文件夹复制到闪存驱动器上,然后在我的电脑上运行。它工作得很好。当我把它发电子邮件给我的同事时,他发现了那个错误。

根据我所看到的,一些解决方案是运行。命令行中的jar。虽然这可能会起作用,但我需要该文件是可双击的。

我通过电子邮件将文件放在一个压缩的文件夹中发送给我的同事,是否可能解压整个文件夹也会弄糟文件。jar文件(不明白为什么应该这样做,但包含了任何可能有用的内容)?

这是舱单。mf,这是在这个范围内。jar文件。文件末尾有一个回车符,它无法很好地复制到此文本框中:

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文件夹,该文件夹包含所有其他文件。罐。

如果有任何其他相关信息我需要包括,让我知道。谢谢

共有2个答案

终逸仙
2023-03-14

为了完成这篇文章,我将写下最终对我有用的东西:

根据Franz Becker基于这个问题的建议,我将整个程序捆绑到一个单一的. jar文件中。

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

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

然后我导出文件(File-

感谢大家的帮助!

印瑾瑜
2023-03-14

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

您可以使用maven assembly插件实现这一点:http://maven.apache.org/plugins/maven-assembly-plugin/usage.html

如果您不知道如何使用Maven,Eclipse有一个很好的向导。我不确定它在NetBeans上是如何工作的,但同样的问题已经被问了很多次,例如,在这里NetBeans导出到Jar,包括所有库文件

 类似资料:
  • 问题内容: 我想创建一个jar文件来执行,该文件是使用java和clojure实现的。这是我采取的步骤。 使我的Java代码调用clojure代码 我可以生成一个具有clojure核心和我的clojure代码的jar文件(ThingOne-1.0.0-SNAPSHOT- standalone.jar),并且我还可以得到一个使用jar文件中使用clojure代码的类文件(HelloJava.clas

  • 澄清一下,这是一个关于二进制 Linux 可执行文件的问题,而不是脚本,脚本也可以是可执行的,并且通常缺少扩展。 根据我的经验,大多数Linux二进制可执行文件缺少文件扩展名;例如,Linux系统上目录中的大多数文件缺少扩展名。 另一方面,目录中的大多数文件在其文件扩展名中都有,并且也有可执行权限。尝试直接执行文件通常会导致seg错误或一些错误,这是有道理的,因为共享库通常旨在动态链接。但是据我所

  • 我在Netbeans IDE 8.0.1中编写了一个名为SampleChat的Java GUI程序,并使用“Clean and Build”函数创建了一个jar文件。 我转到Netbeans创建的'dist'目录,双击它生成的jar文件。打开一个cmd窗口,其行如下: 我打算从一个U盘共享程序,所以它是至关重要的,唯一的要求是一个JVM,鼠标,也许一些手指来双击它。 我想出的一个尴尬的解决方案是编

  • 问题内容: 作为程序的一部分,我有一个连接管理器,该管理器从客户端接收连接,然后为客户端提供用于连接的端口号和密码。这时经理需要调用jar文件,我必须使用一些参数来处理此连接,然后继续操作(忽略其他程序在做什么)。 我的问题一直在执行jar文件。我查找了类似的问题,并尝试使用流程生成器和Runtime.exec。我在jar文件中移动,并检查了它的权限。它只是拒绝在另一个Java程序中工作,而在命令

  • 问题内容: 我有一个包含两个简单的Java swing文件的程序。 如何为程序制作可执行的jar文件? 问题答案: jar文件只是包含Java文件集合的文件。为了使jar文件可执行,你需要指定 Class在jar文件中的位置。示例代码如下。 编译你的类。要制作一个jar,你还需要创建一个清单文件()。例如, 将编译后的输出类文件(JarExample.class,JarExample $ 1.cl