【问题标题】:Distributing an executable Jar console app分发可执行的 Jar 控制台应用程序
【发布时间】:2011-12-31 17:57:41
【问题描述】:

(使用JDK7)

我的一个朋友让我为他编写一个掷骰子的程序,可以掷出任意数量和大小的骰子。所以我做了。为简单起见,我将其保留为控制台应用程序。现在我正试图将它分发给他。我尝试使用 Eclipse 的内置导出器将其导出为 Runnable Jar。

用Java(与javaw相反)打开它之后......什么也没有发生。我可以在命令提示符关闭之前对其进行截图,上面写着:

Error: Could not find or load main class C:\Users\Matt\Desktop\Roller.jar

Roller.jar 的内容

META-INF/MANIFEST.MF
roller/Roller.class

MANIFEST.MF 的内容:

Manifest-Version: 1.0
Class-Path:  . 
Main-Class: roller.Roller

Roller.java 的内容:

public class Roller{
/* Irrelevant code expunged */
    public static void main(String[] args){
        //Irrelevant code expunged
    }
}

我想让它处于一种状态,我可以通过电子邮件将 .jar 发送给他,他可以双击它来运行它。有人可以帮忙吗?

【问题讨论】:

  • 如果它是控制台应用程序(或者即使不是),您实际上可以在控制台上运行它以获得更详细的错误消息。只需打开您平台的命令行(Windows 中为cmd)并执行java -jar /path/to/Roller.jar。您不再需要截屏即可查看错误消息。
  • @Matt G: "console app", "he can double-click it to run it" - 我刚刚创建了一个使这成为可能的类,这只是给你一个额外的电话:stackoverflow.com/a/32547250/3500521

标签: java jar console distribution


【解决方案1】:

在 Roller.java 中,您需要将 package roller; 添加到类的顶部,以匹配 JAR 文件中 roller 文件夹中的 Roller.class。之后,您甚至不需要在 Manifest 文件中指定 Class-Path。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多