【问题标题】:Creating a workable jar创建一个可行的 jar
【发布时间】:2012-03-13 04:53:39
【问题描述】:

好的,这是我的第二轮问题。 我在记事本中创建了一个简单的程序并将其保存为 (Blocktestgui.java)java 文件。 我用命令 javac Blocktestgui.java 编译并得到 (Blocktestgui.class) 我创建了一个文本清单文件(见下文)并将其保存为 manifest.mf 然后我运行命令jar cvf bg.jar Blocktestgui.class manifest.mf 并获取(bg.jar)

这是我的 java 文件:

import javax.swing.JOptionPane;
public class Blocktestgui {
public static void main(String[] args) {

    String firstNumber, secondNumber;
    double number1, number2, sum;

    firstNumber=JOptionPane.showInputDialog ("Enter wall length in decimal feet:",JOptionPane.INFORMATION_MESSAGE);
    secondNumber=JOptionPane.showInputDialog ("Enter wall height in decimal feet:",JOptionPane.INFORMATION_MESSAGE);

    number1=Double.parseDouble (firstNumber);
    number2=Double.parseDouble (secondNumber);

    sum = (number1*number2) / 0.88;

    JOptionPane.showMessageDialog (null, "Total Blocks are " + sum,"Results",JOptionPane.PLAIN_MESSAGE);
    System.exit (0);
    }
}

这是我在创建 jar 之前的 manifest.mf:

Main-Class: Blocktestgui

当我提取 jar 的内容时,我得到一个文件夹和两个文件

文件夹>--META-INF

文件>--Blocktestgui.class

文件>--manifest.mf

TestFolder/
    |- META-INF/
        |- MANIFEST.MF (This file does not contain the line Main-Class: Blocktestgui)
    |- Blocktestgui.class
    |- manifest.mf (This file says is Main-Class: Blocktestgui)

当我在控制台中使用 java -jar bg.jar 运行 jar 文件时,出现“bg.jar 中没有主清单属性”的错误

我在搞砸什么?

【问题讨论】:

    标签: java executable-jar manifest.mf


    【解决方案1】:

    您需要单独指定清单信息,而不仅仅是作为要包含的文件之一:

    来自the docs

    jar c[v0Mmfe] [manifest] [jarfile] [entrypoint] [-C dir] inputfiles [-Joption]
    

    在你的情况下:

    jar cvmf manifest.mf bg.jar Blockingtestgui.class
    

    或者,更简单地说,没有特定的清单文件:

    jar cvfe bg.jar Blockingtestgui.class Blockingtestgui.class
    

    第一个Blockingtestgui.class 指定入口点,第二个指定要包含的文件。注意,标志的顺序在这里很重要; mfe 信息应按指定标志的顺序出现。

    【讨论】:

    • 非常感谢!尽管我仍然需要重新阅读您的帖子以了解这里的实际工作原理,但第一行就像一个魅力。 jar cvmf manifest.mf bg.jar Blocktestgui.class 我刚刚开始,其中一些概念很困难。我正在阅读一本 Java 入门书籍,在 JOptionPanes 的一章之后,我决定尝试自己的,我想要一个工作 jar 文件,然后是一个 exe,只是想看看我是否能做到。再次感谢您的帮助!
    【解决方案2】:

    我建议使用构建工具来创建一个 jar 文件,而不是尝试自己创建一个。

    Apache Ant 常用于构建 jar 文件。

    Here are instructions for installing Ant on Windows.

    Here's a tutorial for writing an Ant build.xml file for your project.

    【讨论】:

      【解决方案3】:

      确保 manifest.mf 文件中的单行以换行符结尾。

      【讨论】:

        猜你喜欢
        • 2017-03-20
        • 1970-01-01
        • 2012-10-19
        • 2012-05-01
        • 1970-01-01
        • 2012-03-06
        • 2015-12-06
        • 2014-08-20
        • 2016-07-09
        相关资源
        最近更新 更多