Java 如何在NetBeans项目生成的jar中的清单文件中设置主类
我有以下问题。我的NetBeans IDE 6.8中有一个Java项目。当我编译它并生成一个包含所有可能内容的.jar文件时,META-INF是不对的。它不包含要执行的类-使用main()方法 当我单击IDE中的Run按钮时,一切都正常。项目的设置也设置正确-指向项目中的类 我尝试添加带有清单文件的META-INF文件夹,但没有成功 有没有办法在NetBeans中手动执行此操作,因为我发现如果在清单中添加缺少的主类,一切都会正常工作 (我想我碰到了某种错误…) //编辑: 我所追求的结果是,我希望使用NetBeans构建创建的jar可以通过以下命令执行: 引自: 在清单文件中设置主类后,可以从命令行运行应用程序:Java 如何在NetBeans项目生成的jar中的清单文件中设置主类,java,netbeans,manifest,Java,Netbeans,Manifest,我有以下问题。我的NetBeans IDE 6.8中有一个Java项目。当我编译它并生成一个包含所有可能内容的.jar文件时,META-INF是不对的。它不包含要执行的类-使用main()方法 当我单击IDE中的Run按钮时,一切都正常。项目的设置也设置正确-指向项目中的类 我尝试添加带有清单文件的META-INF文件夹,但没有成功 有没有办法在NetBeans中手动执行此操作,因为我发现如果在清单中添加缺少的主类,一切都会正常工作 (我想我碰到了某种错误…) //编辑: 我所追求的结果是,我希
java-jarapp.jar
它很简单
- 右键单击项目
- 转到属性
- 转到类别树中的跑步
- 在右侧面板中设置主类
- 建设项目
就这样。希望这能有所帮助。看起来你遇到了麻烦 这个问题意味着有一个解决办法 我无法验证NB 6.8和/或NetBeans 6.9-dev
您可能希望在NetBeans.org网站/issue tracker上注册,并更新问题并添加您的“投票”。将manifest.file=manifest.mf添加到project.properties中,并在项目目录中创建manifest.mf文件在NB 6.9中可以正常工作,在NB 6.8中也可以正常工作。我将对建议的解决方案和解决方案进行总结那个帮助我的人 阅读此错误报告后:
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.7.1
Created-By: 16.3-b01 (Sun Microsystems Inc.)
Main-Class: com.example.MainClass
Class-Path: lib/lib1.jar lib/lib2.jar
manifest.file=manifest.mf
非常感谢vkraemer从7.2.1开始,这仍然是一个问题。创建一个库,因为如果你把它变成一个应用程序,你不知道它会做什么&你完蛋了 但我发现了如何解决这个问题。编辑
nbproject/project.properties
,将以下行更改为false,如图所示:
mkdist.disabled=false
在此之后,您可以在properties中更改main类,它将反映在manifest中。在7.3中,只需启用properties/Build/Package/Copy依赖库,在根据所选目标进行构建时,main类将添加到manifest中。真正的问题是Netbeans如何处理其项目。在实际发布程序供他人使用时,清单文件中的“类路径:”是不必要的。如果您在Netbeans中添加了一个外部库,它将充当一个包。我建议您使用WINRAR之类的程序来查看jar中的文件,并将库作为包直接添加到jar文件中 jar文件内部的外观:
MyProject.jar
Manifest.MF
Main-Class: mainClassFolder.Mainclass
mainClassFolder
Mainclass.class
packageFolder
IamUselessWithoutMain.class
我读了又读,又读又读,想弄明白为什么我得到了一个类未找到错误,结果manifest.mf的行中有一个错误:
Main-Class: com.example.MainClass
我通过转到“项目属性”对话框(右键单击“项目文件”)修复了该错误,然后运行Main类并更正了Netbeans决定放在这里的任何内容。Netbean插入了项目名而不是类名。不知道为什么。可能在muratina喝得酩酊大醉…在您第一次构建项目后,请不要犹豫,查看您的项目文件。查找清单文件并选择“使用记事本打开” 添加行:
Main-Class: package.myMainClassName
其中,
package
是您的包,myClassName
是使用main(String[]args)
方法的类。兄弟,您不需要设置类路径,只需按照以下简单步骤操作即可(我使用Apache NetBeans)
步骤:
- 在我的例子中,lib文件夹位于dist(主jar文件)文件夹之外李>
- 我们需要移动dist文件夹中的lib文件夹,然后从中设置类路径 主jar文件的manifest.mf文件 编辑manifest.mf并添加此类行
- 类路径:lib\foldername\jarfilename.jar lib\foldername\jarfilename.jar
警告:lib文件夹必须位于dist文件夹内,否则jar文件无法访问lib文件夹jar文件首先,您可以创建两种jar。。。一个是简单的“jar”,另一个是“可执行jar”。确定你做对了吗?我从未在netbeans中尝试过这一点,但eclipse为您提供了一个wizzard来创建一个可执行的jar,您可以在那里选择主类。如果netbeans不提供类似的指导,我会感到惊讶@Philipp Andre:不确定是否有这样的向导,但有一个窗口“project preferences”,上面写着my Main.class,但在构建之后-清单文件中没有任何内容这解决了我的问题,但是我首先找到了这个解决方案,所以我想在这里发布@LeniKirilov,请帮助回答这个问题:这没有帮助-我已经在问题中描述过了抱歉,我的帖子。你的电话没打中