【发布时间】:2012-04-16 00:31:46
【问题描述】:
这是一个非常愚蠢的问题,我无法给出明确的答案。
背景。
我正在使用 Eclipse(在 XP 终端上使用 ANT 插件之一)。
我刚刚开始使用 ANT,在 [jar] 指令中我正在设置我完成的 JAR 文件的位置,当我“解压缩”文件时得到以下信息
META-INF/MANIFEST.MF MyMainFile.class
这与在 oracle 网站上找到的内部结构一致。 (这里http://docs.oracle.com/javase/tutorial/deployment/jar/view.html)
但是当我尝试运行我的文件时,出现“找不到主类”错误?
我看过一些其他帖子,其中人们“解压缩”了 JAR 文件并最终得到以下结构...
META-INF/MANIFEST.MF dtvcontrol/DTVControlApp.class
(从这里http://www.coderanch.com/t/528312/java/java/standalone-application)
那么我应该得到一个结构,其中我的类文件位于反映包名称的目录中...例如
META-INF/MANIFEST.MF MyPackage/MyMainFile.class
如果是这样,为什么我使用 ANT 得到的结构不正确,或者为什么有 2 个不同的“正确”内部结构? (如何为每个/控制我得到的东西指定主类和类路径)
另外,如果您有兴趣,请查看 MANIFEST 文件状态(使用 ANT 构建) [属性名称="Main-Class" value="MyPackage.MyMainFile"/]
另外正在开发的包的目录结构如下...
/JavaDev/MyTestPackage/src(包含源文件) //JavaDev/MyTestPackage/bin (包含来自 eclipse 的类文件,或者来自 ANT JAVAC 任务的类文件,我是否将其命名错误?我应该将其命名为 build 吗?)
除此之外,当我创建 jar 时,我没有将其命名为“MyTestPackage.jar”,而只是命名为“test.jar”,这会导致问题吗?我假设我并没有很好地理解 [main-class] 定义的全部内容。
除此之外……
'MyTestPackage' 实际上是我在其他地方使用的一个小型可视错误消息库,我还有一个包含用于测试的主类的第二个文件。因此它指向各种库(我需要将所有 SWT 库复制到指定目录吗?)
我在某处读过,如果我将库加载到我的主类中(我显然这样做是为了打开窗口),那么如果我使用它们,尝试运行程序将在“找不到主类”上失败,同样也是true 用于添加任何“静态最终”成员(我用于错误登录)。
'静态决赛'问题... 我试图调整 ANT 中的类路径,但我得到了许多其他错误,用于连接到 Log4J 和我使用的“包装器”(因为它是一个错误的导入),但是这些库存在于它们应该设置的位置在类路径中)。
我觉得我快到了....但不完全...
我正在为我正在创建的小型“图书馆项目”做这件事,目的是使用 MAVAN 作为将它们连接在一起的主要外包装......但现在我只想让这一切顺利进行因为它的工作原理。
我可以提供完整的源代码,或根据需要提供任何其他信息。
提前谢谢...
大卫
【问题讨论】:
-
vikiiii 我打算发表一个狡猾的评论,询问你有多少“眼睛”......但决定不这样做(注意 3“。”不是一个,不是两个)。 ;)
标签: java eclipse ant manifest.mf