【问题标题】:Running jar file from terminal on linux在 linux 上从终端运行 jar 文件
【发布时间】:2016-09-23 09:21:19
【问题描述】:

我正在尝试从终端运行我的项目 jar。 我的项目包含菜单的 SWT 库和图像文件夹。 我在 sh 文件上写了命令,但我得到一个错误。

我的脚本:

java -cp /root/Desktop/applicationFramework/SWT/swtLinux.jar:/root/Desktop/applicationFramework/images/AppMenu.png:/root/Desktop/mainProject.jar boot.Run

我得到的错误:

Exception in thread "main" org.eclipse.swt.SWTException: i/o error (java.io.FileNotFoundException: images/AppMenu.png (No such file or directory))
    at org.eclipse.swt.SWT.error(SWT.java:4441)
    at org.eclipse.swt.SWT.error(SWT.java:4356)
    at org.eclipse.swt.graphics.ImageLoader.load(ImageLoader.java:176)
    at org.eclipse.swt.graphics.ImageDataLoader.load(ImageDataLoader.java:26)
    at org.eclipse.swt.graphics.ImageData.<init>(ImageData.java:377)
    at org.eclipse.swt.graphics.Image.<init>(Image.java:668)
    at view.MenuWindow.initWidgets(MenuWindow.java:52)
    at view.BasicWindow.run(BasicWindow.java:52)
    at view.MenuWindow.start(MenuWindow.java:211)
    at boot.Run.main(Run.java:13)
Caused by: java.io.FileNotFoundException: images/AppMenu.png (No such file or directory)
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.<init>(FileInputStream.java:146)
    at java.io.FileInputStream.<init>(FileInputStream.java:101)
    at org.eclipse.swt.internal.Compatibility.newFileInputStream(Compatibility.java:183)
    at org.eclipse.swt.graphics.ImageLoader.load(ImageLoader.java:173)
    ... 7 more

编写脚本以运行我的项目的正确方法是什么?

谢谢。

【问题讨论】:

  • 你忘了 -jar 吗?
  • 我试过了:java -cp /root/Desktop/applicationFramework/SWT/swtLinux.jar:/root/Desktop/applicationFramework/images/AppMenu.png -jar /root/Desktop/mainProject.jar boot.Run
  • 但还是不行
  • 我认为你的问题不是你的启动脚本。是它在您的类路径中找不到资源(在您的情况下为图像)的事实。您应该将图像作为资源放入您的项目中,它们最终会出现在您的 .jar 中。如果您使用 Maven 构建项目,只需将它们添加到 src/main/resources/images 下

标签: java linux jar terminal sh


【解决方案1】:

像这样运行 jar 似乎没有什么问题。但它未能找到所需的资源。我的理解是它正在从相对文件路径而不是类路径中查找图像,尝试复制它正在加载图像/appMenu 的图像。 png 到您运行它的相对目录。或者在原始应用程序包上下文中运行,以便路径正确,而不是从桌面运行。移动是首选,因为在运行时加载的其他资源可能会丢失。

cd /root/Desktop/applicationFramework

java -cp SWT/swtLinux.png:/root/Desktop/mainProject.jar boot.Run

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-25
    • 2021-11-12
    • 2013-03-17
    • 2016-07-01
    • 1970-01-01
    • 2016-08-17
    • 1970-01-01
    • 2016-10-04
    相关资源
    最近更新 更多