【问题标题】:Why does my uberjar not work on Windows 7?为什么我的 uberjar 不能在 Windows 7 上运行?
【发布时间】:2016-01-18 14:13:52
【问题描述】:

我在 Mac 上使用 Clojure 创建了一个新项目:

lein new app clojure-noob

使用创建我的 uberjar

lein uberjar

果然,我可以通过以下方式运行这个 uberjar:

java -jar target/uberjar/clojure-noob-0.1.0-SNAPSHOT-standalone.jar 

我得到:

Hello, World!

现在我将此文件带到 Windows 7 并给出相同的命令:

java -jar clojure-noob-0.1.0-SNAPSHOT-standalone.jar

我似乎得到了无限的等待。为什么我不能在 Windows 上运行他的 .jar 文件?

Mac上的java版本是:

java version "1.8.0_51"
Java(TM) SE Runtime Environment (build 1.8.0_51-b16)
Java HotSpot(TM) 64-Bit Server VM (build 25.51-b03, mixed mode)

Windows 7 上的 java 版本为:

java version "1.8.0_66"
Java(TM) SE Runtime Environment (build 1.8.0_66-b18)
Java HotSpot(TM) Client VM (build 25.66-b18, mixed mode)

lein 版本给出以下内容:Leiningen 2.5.3 on Java 1.8.0_51 Java HotSpot(TM) 64-Bit Server VM

【问题讨论】:

  • lein 版本提供以下内容:Leiningen 2.5.3 on Java 1.8.0_51 Java HotSpot(TM) 64-Bit Server VM
  • 当你以java -verbose:class -jar ... 运行它时,也许你会得到一个提示,你应该看到它会挂在哪个类。你在你的代码中做一些标准输入/标准输出的重定向吗?
  • lein new 从模板创建一个标准的“hello world”应用程序。它对标准输入或标准输出没有任何作用。
  • 感谢 SubOptimal 的建议!这表明我正在加载各种类。这给了我耐心等待,最后,经过一长串的课程加载,它打印出“Hello,World!”这是预期的输出。我刚刚创建了一个“Hello World”模板项目——由“lein new app”创建的默认项目。我不明白为什么我的机器这么慢——可能是因为我正在运行一个 VirtualBox 虚拟机——但我只是在 Clojure 中编写了一个 hello world 项目。

标签: java jar clojure leiningen


【解决方案1】:

答案是我试图从在 Mac 上运行的 VirtualBox 上的 Windows 7 VM 上的共享文件夹中运行 .jar。这个 IO 很慢。

当我将该文件复制到桌面并从那里运行时 - 访问速度很快。感谢 SubOptimal 帮我解决这个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-02-24
    • 1970-01-01
    • 2010-10-14
    • 2019-12-19
    • 2023-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多