Java .jar没有在Windows上运行

时间:2011-07-24 15:45:24

标签: java jar

我正在使用Fedora 15下的Eclipse进行开发。我导出了一个可运行的 jar 。它在Fedora中运行良好。但我无法在Windows上运行它。我已经安装了JRE。我甚至尝试过安装JDK。没有错误日志,应用程序只是没有启动。

这是输出

Microsoft Windows [Version 6.1.7601]
(c) Корпорация Майкрософт (Microsoft Corp.), 2009. Все права защищены.

C:\Users\Артоюрос>java -jar C:\Lib.Ru2Epub.jar
Exception in thread "main" java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoa
der.java:58)
Caused by: java.lang.UnsatisfiedLinkError: Could not load SWT library. Reasons:

        no swt-gtk-3735 in java.library.path
        no swt-gtk in java.library.path
        Can't load library: C:\Users\└ЁЄю■Ёюё\.swt\lib\win32\x86\swt-gtk-3735.dl
l
        Can't load library: C:\Users\└ЁЄю■Ёюё\.swt\lib\win32\x86\swt-gtk.dll

        at org.eclipse.swt.internal.Library.loadLibrary(Library.java:285)
        at org.eclipse.swt.internal.Library.loadLibrary(Library.java:194)
        at org.eclipse.swt.internal.C.<clinit>(C.java:21)
        at org.eclipse.swt.internal.Converter.wcsToMbcs(Converter.java:63)
        at org.eclipse.swt.internal.Converter.wcsToMbcs(Converter.java:54)
        at org.eclipse.swt.widgets.Display.<clinit>(Display.java:132)
        at ru.lib.epub.MainWindow.main(MainWindow.java:28)
        ... 5 more

C:\Users\Артоюрос>

4 个答案:

答案 0 :(得分:2)

由于@a_horse_with_no_name表示“打开命令提示符并运行java -jar your.jar”。如果它工作,你必须将扩展名* .jar映射到名为“java”的程序。这就是Windows的工作原理。当双击* .txt文件启动记事本时,相同的机制正在工作。

由于我现在在linux上,我无法告诉你如何将扩展程序映射到程序,但它位于文件资源管理器的菜单中。

答案 1 :(得分:1)

它应该是一个可运行的jar,因此您可以使用双击在Windows上运行它。

答案 2 :(得分:1)

您可能正在使用绝对路径引用资源..因为您说您在Linux上开发了应用程序。你可能会说new File("/etc/fstab"); ..这会在Windows上失败,因为它没有像这样的文件系统。

通常会出现这种情况。

答案 3 :(得分:1)

swt dlls存在问题。

  1. 检查文件C:\ Users \└ЁЄю■Ёюё.swt\ lib \ win32 \ x86 \ swt-gtk.dll是否存在
  2. 也许你无法加载它因为你没有管理员权限?然后 转到Eclipse安装路径,右键单击eclipse.exe并选择“Properites”。从eclipse.exe“属性”弹出窗口中选择“兼容性”选项卡,然后在选项卡底部选中“Previlege Level”类别中的“以管理员身份运行此程序”复选框。这应该可以解决问题。
  3. 有时只是将dll添加到lib文件夹中有帮助