没有清单文件Eclipse

他们给我发送了一个Java代码(用eclipse编写),该代码以zip形式提供。解压缩后,我有以下文件:

- .settings
  - org.eclipse.jdt.core.prefs
- bin
  - anon
     - Discovery.class
     - Main$1.class
     - Main.class
     - Server.class
- src
 - anon
     - Discovery.java
     - Main.java
     - Server.java
- .classpath
- .project
- jssc.jar

当我尝试从命令行执行jssc.jar时,我收到一条消息,提示没有主清单属性。 我已经解压缩了jar文件以查看清单及其包含的内容:

  • jssc:里面有很多“类”文件
  • libs:带有包含每个操作系统文件的文件夹
  • Meta-INF:带有文件清单

因此,似乎有一个清单。但是,当我打开它时,它会出现:

    Manifest-Version: 1.0
    Ant-Version: Apache Ant 1.8.1
    Created-By: 1.6.0_45-b06 (Sun microsystems Inc.)
    X-COMMENT: Main-Class will be added automatically by build

我该怎么办?如何将jar文件添加到buildpath?

haima0758 回答:没有清单文件Eclipse

如果您尝试使用命令java -jar jssc.jar执行该命令,但失败了,请尝试使用以下命令

java -cp jssc.jar anon.Main

以上内容将告诉JVM在其类路径中加载jssc.jar,然后在Main类中执行main方法。

更新:如果Java程序需要的类比jssc.jar中存在的类更多,请在-cp选项中添加';'。分隔符。

例如:

java -cp jssc.jar;bin/anon/;libs/a.jar;libs/;.... anon.Main
,

我想您应该在使用提供的.jar文件作为参考的同时,对提供的java文件进行一些修改。

因此,您第一步应该将项目导入eclipse。
为此:

  • 选择“文件”>“导入...”
  • 选择“常规”>“将现有项目放入工作区”
    Import dialog
  • 点击“下一步>”
  • 选择“选择存档文件:” Import existing project
  • 使用“浏览”按钮查找他们给您的存档。
  • 选择eclipse将找到的项目
  • 点击“完成”按钮
,

首先,我想承认@ioannis-barakos 的建议为我解决了这个问题。我添加这个答案只是因为我的情况有点复杂,并且不容易适应已接受答案的评论,特别是因为我打算对我的解释非常明确。

我遇到这个问题是因为我试图找出运行由 Eclipse/Maven“安装”命令生成的 jar 的正确命令。该程序是模块化的,并使用 JavaFX 作为 GUI。 Maven 命令“clean javafx;run”成功。

“为什么要运行 jar 的命令?”你问。我希望与一些朋友和同事分享该程序,以获取反馈。我可以使用 JLINK(“clean javafx:jlink”),但创建的图像仅适用于 Windows 操作系统,而不适用于 Mac 或 Linux。带有正确命令行的 jar 文件应该可以在 Mac 上运行。 (至少在拼图和 javafx 分离之前,他们曾经很容易地做到了。)

所以,我成功的 Windows 命令行如下:

java -cp myProject-0.0.1.jar --module-path "%PATH_TO_FX%" --add-modules javafx.graphics,javafx.controls my.package.path.LaunchMyProject

正如@ioannis-barakos 所解释的,-cp 参数为我们提供了类路径,如果有其他元素,它们将是“;”分开。

当我在 GUI 中使用 JavaFx 时,必须包含 JavaFX 模块的路径。这是通过 --module-path 参数完成的。模块的其他位置将是“;”分开了。这里的位置可以完全拼写出来,但我正在使用环境变量 PATH_TO_FX。这指向 JavaFX SDK 中的 /lib 文件夹,其中包含 javafx .jar 文件。为此,我遵循 GluonGetting Started with JavaFX 提供的文档最后注意,环境变量用引号引起来,因为我将我的 JavaFX 文件夹与其他 java jdks 放在同一文件夹中,在 { {1}},而 c:/program files/java 中的“”则被解释为分隔符。

我使用 --add-modules 参数添加的模块列表是在 requires 的 module-info.java 文件中找到的 行。我的模块信息中也有 java.desktop 的 requires 行,但是本地 Java(假设它是模块化版本)应该已经涵盖了这一点。

最后,可以找到保存 main 的类的确切语法是将 .jar 转换为 .zip 并检查文件夹。注意地址中没有“/”或“\”,只有“。”分隔符。

本文链接:https://www.f2er.com/3137417.html

大家都在问