【发布时间】:2014-03-11 00:07:46
【问题描述】:
一些上下文: 我正在 Eclipse 中创建一个 Java 项目(仅使用 Eclipse 一周)。在中断了 13 年之后,我选择了 Java,因为我必须将文件从 IBM EBCDIC 5035 和 935 转换为 UTF-16。独立类(总共两个类)在 Eclipse 中运行良好。 每个类都有两个参数——源文件+位置和目标文件+位置 每个班级每晚将转换大约十几个文件。
所以现在我必须自动化解决方案并进行部署。我使用 Eclipse 创建了一个常规 jar(不是可运行的 jar),这样我就可以单独调用每个类,而无需创建“管理器”类。
在我运行以下命令时的命令提示符:
java -jar test.jar ConvFileCP_5035_To_UTF16 \\\\usanofp03\\Informatica\\Dev\\OutputFiles\\JDEJapanCustomer_CP939.txt \\\\usanofp03\\Informatica\\Dev\\OutputFiles\\JDEJapanCustomer。 txt
输出(通过 system.out... 确认)让我感到惊讶,因为 args[0] = ConvFileCP_5035_To_UTF16(类名!)和 args[1] = \\\\usanofp03\\Informatica\\Dev\\OutputFiles\\JDEJapanCustomer_CP939.txt
我转而使用 args[1] 和 args[2] 并且程序运行良好但我想知道为什么会发生这种情况以及在这里做什么是正确的
帮助将不胜感激! 谢谢,
【问题讨论】:
-
我认为this 应该会给你答案。它描述了如何使用
-jar选项,看起来你不应该给它另一个类名。 (我自己从未尝试过,所以我不能给你任何其他建议。) -
我不知道你所说的“可执行jar”;哪有这回事。您是指
META-INF/MANIFEST.MF中的Main-Class条目吗? -
据我了解 - 当您创建一个可运行的 jar 时,您需要在 MANIFEST 中指定 MAIN(条目)类。在 Eclipse 中,有一个选项可以简单地创建一个 jar 文件(不可执行是我用词不当)。这是我用过的。我希望能够在 jar 中调用类,而不必使用我正在做的 Main-Class 条目。
-
那么不要使用
-jar,因为它需要Main-Class。将 jar 添加到您的类路径并调用java name.of.MainClass <args here>。
标签: java eclipse jar arguments