有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

使用清单将java项目导出为jar文件

我刚刚编写了Java控制台项目,应该将其打包为jar文件。我在谷歌上搜索了很多,找到了不同的解决方案,比如(Eclipse)Project->;新配置->;e、 然后使用指定的配置导出为jar文件。那很好,但这不是我需要的。反复制作后,它将不起作用。我试着像这里提到的那样:click

第二种解决方案:使用清单创建jar。这样更好,因为我可以指定main的入口点。班但由于can的原因,它不会工作;我不知道其他包裹在哪里

Upd:发射器。课堂看起来像这样

package backpack.dao;

public class Launcher{
    public static void main(String[] args){
    Backpack.start();
}
}

我的项目结构:

src/backpack/dao/Item.java
                /Backpack.java
                /Chromo.java
src/backpack/main/launcher/Launcher.java

问题是:我应该在清单中写什么,而不是这样写:

Main-Class src/backpack/main/launcher/Launcher创建可执行jar 成功

p.S Launcher类使用背包中的实例。JAVA 请不要降级。我是新手

谢谢


共 (1) 个答案

  1. # 1 楼答案

    发射器的包装是什么。JAVA您是否已将包名包含到清单中的类名中。txt? 记住,当发射器。java在包“backpack.main.launcher”中,您的类名在清单中。txt将是:

    Main-Class src/backpack.main.launcher.Launcher
    

    而不是:

    Main-Class src/backpack/main/launcher/Launcher
    

    另外,请记住:

    The text file must end with a new line or carriage return.

    要检查jar文件的具体错误,请在命令行中使用以下命令运行它:

    java -jar MyJar.jar
    

    并将输出粘贴到此处,并显示错误消息

    有关更多帮助,您可以从Oracle查看此示例:link

    编辑:

    我重新创建了您的项目结构,并找到了解决方案(至少我认为我找到了:)

    1. 编译代码并使用编译后的代码转到父目录(对于*.class文件,这应该是“out”目录或类似的内容-取决于IDE)。例如:当您的项目位于some/path/src/backpack/main/launcher时,转到src目录
    2. 运行命令: jar cvfe MyJar.jar backpack.main.launcher.Launcher -C . . (是的,末尾有两个点)

    这将创建名为MyJar.jar的jar和主类为backpack.main.launcher.Launcher的清单文件(-e标志)-C标志包括所有*。从目录.(当前目录)递归类文件,因此从daolauncher包递归类文件

    1. 测试jar:java -jar MyJar.jar