gpt4 book ai didi

Javac 不创建主类引用

转载 作者:行者123 更新时间:2023-12-01 13:06:59 25 4
gpt4 key购买 nike

我正在尝试打包一些 java 代码,其中引用了 Hadoop API for java。我正在我的 PC 上编写代码并将其移动到 CentOS VM,然后编译它。

出于某种原因,当我运行 javac 命令然后解压缩产品文件时,我的 ./META-INF/MANIFEST.MF文件没有定义主类的行,例如“Main-Class:folder1.folder2.file”。我相信这就是为什么我收到“尝试运行 Hadoop.jar 时没有主要 list 属性”的原因。

为了逐步完成该过程,我使用 netbeans 编写了代码并导入 Hadoop API .jar 文件。保存后,我将 Hadoop.java(这是唯一包含除 Hadoop API 之外的代码的文件)文件上传到 /usr/dan 中的 VM。目录。

来自 /usr/dan我跑javac -classpath /usr/hadoop-0.20.2/hadoop-0.20.2-core.jar -d ./Hadoop ./Hadoop.java没有显示任何错误。

然后我使用jar cvf ./Hadoop.jar -c ./Hadoop/创建 jar 文件。没有显示任何错误。

然后我尝试使用 java -jar Hadoop.jar 运行 jar 文件并得到错误。

我需要上传到虚拟机的唯一重要文件是 .java 文件吗?我的 Hadoop API jar 文件位于 /usr/hadoop-0.20.2/hadoop-0.20.2-core.jar

一旦我执行 javac 命令,API 就会包含在 .class 文件中,我不再需要 /usr/hadoop-0.20.2/hadoop-0.20.2-core.jar , 正确的?还是这个文件需要保留在相对于.jar文件的某个路径下?

list 文件中没有定义 Main 方法的可能原因是什么?

非常感谢您的帮助,整个周末我都在绞尽脑汁。

编辑:

默认情况下, list 几乎为空,如下所述:http://docs.oracle.com/javase/tutorial/deployment/jar/defman.html 。我可以使用 m 轻松地将条目添加到 list 文件中旗帜。我的使用基于 http://docs.oracle.com/javase/tutorial/deployment/jar/appman.html 。在我看来,这是创建 jar 文件后必须完成的事情,但只需添加 m在最初震动文件时使用适当的组件进行标记将一次性完成这一任务。

最佳答案

如果您通过 jar 命令创建 jar 并需要其他 list 条目(例如 Main-Class),则需要使用 m 选项

jar cmf manifest-file jar-file content-files

使用合适的 list 文件(可以包含简单的 list 条目行)。

关于Javac 不创建主类引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23188536/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com