我有以下问题。我在NetBeans IDE 6.8中有一个Java项目。当我编译它并产生一个包含所有可能的.jar文件时,META-INF就不对了。它不包含要执行的类 - 使用main()方法。
当我单击IDE中的“运行”按钮时,一切正常。项目的设置也是正确的 - 指向我项目中的一个类。
我尝试使用清单文件添加文件夹META-INF,但我没有管理。
有没有办法在NetBeans中手动执行此操作,因为我发现如果我在清单中添加缺少的Main类,一切正常。
(我想我遇到了某种错误......)
//编辑: 我之后的结果是,我希望使用NetBeans构建创建的jar可以使用命令执行:
在清单文件中设置Main-Class后,您可以从命令行运行该应用程序:
java -jar app.jar
答案 0 :(得分:28)
我将对提议的解决方案和帮助我的解决方案进行总结!
阅读此错误报告后: bug in the way NetBeans 6.8 creates the jar for a Java Library Project.
在我的项目根
编辑manifest.mf。我看起来像这样:
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
打开文件/nbproject/project.properties
添加行
manifest.file=manifest.mf
清洁+项目建设
现在.jar已成功构建。
非常感谢 vkraemer
答案 1 :(得分:4)
看起来你遇到了bug in the way NetBeans 6.8 creates the jar for a Java Library Project。
这个问题意味着有一种解决方法。
我无法使用NB 6.8和/或NetBeans 6.9-dev ...
验证您可能需要在NetBeans.org网站/问题跟踪器中注册并更新问题并添加“投票”。
答案 2 :(得分:3)
很简单。
多数民众赞成。希望这会有所帮助。
答案 3 :(得分:1)
在7.3中,只需启用属性/构建/打包/复制从属库,主要类将根据所选目标在构建时添加到清单中。
答案 4 :(得分:0)
将manifest.file = manifest.mf添加到project.properties并在项目目录中创建manifest.mf文件在NB 6.9中正常工作,并且也应该在NB 6.8中工作。
答案 5 :(得分:0)
这仍然是7.2.1的问题。创建一个库,因为如果你把它变成一个应用程序,你就不知道它会做什么。你搞砸了。
虽然找到了如何解决这个问题。修改nbproject/project.properties
,将以下行更改为false,如下所示:
mkdist.disabled=false
在此之后,您可以更改属性中的主类,它将反映在清单中。
答案 6 :(得分:0)
真正的问题是Netbeans如何JAR项目。实际发布程序供其他人使用时,清单文件中的“Class-Path:”是不必要的。如果您在Netbeans中添加了外部库,则它将充当程序包。我建议你使用像WINRAR这样的程序来查看jar中的文件,并将你的库作为包直接添加到jar文件中。
jar文件的内部应该如何显示:
MyProject.jar
Manifest.MF
Main-Class: mainClassFolder.Mainclass
mainClassFolder
Mainclass.class
packageFolder
IamUselessWithoutMain.class
答案 7 :(得分:0)
我阅读并阅读并阅读以找出为什么我收到类未找到错误,但事实证明 manifest.mf 在行中出错:
Main-Class: com.example.MainClass
我通过转到项目属性对话框(右键单击项目文件),然后运行和主类来修复错误并纠正了Netbeans决定放在这里的任何内容。 Netbean插入了项目名称而不是类名。不知道为什么。可能在muratina上喝醉了......
答案 8 :(得分:0)
不要犹豫,但在您首次构建项目后便会查看您的项目文件。查找清单文件,然后选择“使用记事本打开”。
添加行:
Main-Class: package.myMainClassName
其中package
是您的软件包,而myClassName
是具有main(String[] args)
方法的类。
答案 9 :(得分:0)
兄弟,您无需设置类路径,只需遵循以下简单步骤(我使用Apache NetBeans)
步骤:
提取要添加到项目中的jar文件。
仅复制项目中所需的那些软件包(文件夹)。 (不要复制清单文件)
使用WinRAR打开主项目jar文件(dist / file.jar)。
将该文件夹或程序包粘贴到主项目jar文件中。
这些软件包在您的项目中可以100%工作。
警告:请勿在清单文件中进行任何更改。
另一种方法:
我们需要将lib文件夹移到dist文件夹中,然后从 主jar文件的manifest.mf文件。
编辑manifest.mf并添加这种类型的行
警告: lib文件夹必须位于dist文件夹中,否则jar文件无法访问您的lib文件夹jar文件