在linux上运行来自终端的jar文件

时间:2016-05-25 16:20:29

标签: java linux jar terminal sh

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

我的剧本:

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

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

谢谢。

1 个答案:

答案 0 :(得分:1)

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

  

cd / root / Desktop / applicationFramework

     

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