这是一个非常愚蠢的问题,我无法给出明确的答案。
背景。
我正在使用 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 构建)[attribute name="Main-Class" value="MyPackage.MyMainFile"/]
另外正在开发的包的目录结构如下...
/JavaDev/MyTestPackage/src (包含源文件) //JavaDev/MyTestPackage/bin (包含来自 eclipse 或来自 ANT JAVAC 任务的类文件,我是否将其命名错误?应该将其称为 build 吗?)
除此之外,当我创建 jar 时,我没有将其命名为“MyTestPackage.jar”,而只是命名为“test.jar”,这会导致问题吗?我假设我并没有很好地理解 [main-class] 定义的全部内容。
除了这一切...
'MyTestPackage' 实际上是我在其他地方使用的一个小型视觉错误消息库,我有第二个文件,它有一个用于测试的主类。因此它指向各种库(我需要将所有 SWT 库复制到指定目录吗?)
我在某处读过,如果我将库加载到我的主类中(我显然这样做是为了打开窗口),那么如果我使用它们,尝试运行程序将在“找不到主类”上失败,添加也是如此在任何“静态最终”成员中(我用于错误登录)。
'Static Final' 问题...我试图在 ANT 中调整类路径,但在连接到 Log4J 和我使用的“包装器”时出现了许多其他错误(因为它是一个错误的导入),但是库存在于它们应该在类路径中设置的位置)。
我觉得我快到了……但不完全……
我正在为我正在创建的小型“图书馆项目”这样做,目的是使用 MAVAN 作为将它们连接在一起的主要外包装......但是现在我只想让它继续工作.
我可以根据需要提供完整的源代码或任何其他信息。
提前致谢...
大卫