Mac Java应用程序以.jar运行,但捆绑为.app时无法正常运行

Mac Java应用程序以.jar运行,但捆绑为.app时无法正常运行,java,macos,jar,administrator,.app,Java,Macos,Jar,Administrator,.app,我用Java为我的Mac写了一个文件拷贝程序。当我从Eclipse导出一个runnable.jar时,一切都很好。所以我把它打包成一个.app,然后运行这个应用。一切看起来都很好,GUI加载了,但当我告诉它从与前面相同的位置复制完全相同的文件时,它就在那里。未复制任何文件,但不会显示为无响应 我试图复制到桌面上新文件夹的源文件位于/Library/Application Support/My files下 由于系统将我的Java应用程序视为.app而不是.jar,我是否需要向用户请求管理员权限

我用Java为我的Mac写了一个文件拷贝程序。当我从Eclipse导出一个runnable.jar时,一切都很好。所以我把它打包成一个.app,然后运行这个应用。一切看起来都很好,GUI加载了,但当我告诉它从与前面相同的位置复制完全相同的文件时,它就在那里。未复制任何文件,但不会显示为无响应

我试图复制到桌面上新文件夹的源文件位于/Library/Application Support/My files下

由于系统将我的Java应用程序视为.app而不是.jar,我是否需要向用户请求管理员权限

当我使用sudo命令从终端运行我的应用程序时,它会输出一组数据

MUS9155A271AL:~ sesa251707$ sudo /Users/sesa251707/Desktop/Notes\ Cloner\ Mac.app/Contents/MacOS/JavaApplicationStub 
Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: org/apache/commons/io/FileUtils
    at Notes_Cloner$2.actionPerformed(Notes_Cloner.java:181)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2028)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2351)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
    at java.awt.Component.processMouseEvent(Component.java:6414)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3275)
    at java.awt.Component.processEvent(Component.java:6179)
    at java.awt.Container.processEvent(Container.java:2084)
    at java.awt.Component.dispatchEventImpl(Component.java:4776)
    at java.awt.Container.dispatchEventImpl(Container.java:2142)
    at java.awt.Component.dispatchEvent(Component.java:4604)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4618)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4279)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4209)
    at java.awt.Container.dispatchEventImpl(Container.java:2128)
    at java.awt.Window.dispatchEventImpl(Window.java:2492)
    at java.awt.Component.dispatchEvent(Component.java:4604)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:717)
    at java.awt.EventQueue.access$400(EventQueue.java:82)
    at java.awt.EventQueue$2.run(EventQueue.java:676)
    at java.awt.EventQueue$2.run(EventQueue.java:674)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:86)
    at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:97)
    at java.awt.EventQueue$3.run(EventQueue.java:690)
    at java.awt.EventQueue$3.run(EventQueue.java:688)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:86)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:687)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.io.FileUtils
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
    ... 37 more
线程“AWT-EventQueue-0”java.lang.NoClassDefFoundError中出现异常:org/apache/commons/io/FileUtils


我不知道Mac应用程序是如何从Jar文件创建的,但错误消息显示org/apache/commons/io/FileUtils不在
classpath
中。在“将其捆绑为应用程序”的过程中,是否有办法在类路径中指定其他JAR?

请发布一些代码。你试过调试吗?我在终端上用sudo运行了我的应用程序。当我点击按钮备份文件时,我发布了它的输出。我不知道Mac应用程序是如何从Jar文件创建的,但错误消息显示,
org/apache/commons/io/FileUtils
不在`类路径'中。在“将其捆绑为应用程序”的过程中,是否有办法在类路径中指定其他jar?我觉得自己太愚蠢了,我将Apache Commons jar添加到了我的应用程序中,并更改了info.plist以反映这一点。现在一切都好了,你就是那个人。我怎样才能把你的评论作为正确答案提交给你呢?如果有什么安慰的话,我已经犯了25年愚蠢的错误了。我添加了一个带有评论的回复。欢迎来到SO:)