Scene Builder导入Jar包遭遇Access Denied异常求助
解决Scene Builder导入Jar包时的
java.nio.file.AccessDeniedException异常 嘿,这个问题我太熟悉了!之前在导入自定义控件Jar到Scene Builder时也碰到过一模一样的情况——明明之前能用,突然就弹出权限错误。先抓一下你的错误核心:
java.nio.file.AccessDeniedException: C:\Users\ivar\AppData\Roaming\Scene Builder\Library\NumberField-1.0-SNAPSHOT-shaded.jar.tmp -> C:\Users\ivar\AppData\Roaming\Scene Builder\Library\NumberField-1.0-SNAPSHOT-shaded.jar
这说明Scene Builder在把临时文件移动到用户库目录时被系统拒绝了,大概率是文件占用或者权限限制的问题,试试下面这几个实用的解决步骤:
- 立刻重启Scene Builder:很多时候是程序自身进程卡住,占用了目标Jar文件或者临时文件,重启后释放资源就能正常导入了。
- 手动清理Scene Builder的库目录:
找到路径C:\Users\ivar\AppData\Roaming\Scene Builder\Library,删除里面的NumberField-1.0-SNAPSHOT-shaded.jar和NumberField-1.0-SNAPSHOT-shaded.jar.tmp文件,然后再重新导入你的Jar包。 - 以管理员身份运行Scene Builder:右键点击Scene Builder的快捷方式,选择「以管理员身份运行」后再尝试导入。Windows有时候会限制普通用户写入AppData下的某些目录,提升权限就能解决。
- 检查Jar文件是否被占用:看看你的IDE(比如IDEA、Eclipse)是不是正在使用这个Jar,或者杀毒软件在后台扫描它,关闭这些程序后再试导入。
- 重新打包Jar文件:如果以上都不行,可能是Jar文件本身损坏了,重新用Maven/Gradle打包一个干净的版本,再导入试试。
下面是你提供的完整错误日志:
java.nio.file.AccessDeniedException: C:\Users\ivar\AppData\Roaming\Scene Builder\Library\NumberField-1.0-SNAPSHOT-shaded.jar.tmp -> C:\Users\ivar\AppData\Roaming\Scene Builder\Library\NumberField-1.0-SNAPSHOT-shaded.jar at sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:83) at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:97) at sun.nio.fs.WindowsFileCopy.move(WindowsFileCopy.java:301) at sun.nio.fs.WindowsFileSystemProvider.move(WindowsFileSystemProvider.java:287) at java.nio.file.Files.move(Files.java:1395) at com.oracle.javafx.scenebuilder.kit.editor.panel.library.LibraryPanelController.copyFilesToUserLibraryDir(LibraryPanelController.java:844) at com.oracle.javafx.scenebuilder.kit.editor.panel.library.ImportWindowController.okButtonPressed(ImportWindowController.java:232) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:71) at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:275) at javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1769) at javafx.fxml.FXMLLoader$ControllerMethodEventHandler.handle(FXMLLoader.java:1657) at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86) at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238) at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191) at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59) at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58) at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74) at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49) at javafx.event.Event.fireEvent(Event.java:198) at javafx.scene.Node.fireEvent(Node.java:8413) at javafx.scene.control.Button.fire(Button.java:185) at com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(ButtonBehavior.java:182) at com.sun.javafx.scene.control.skin.BehaviorSkinBase$1.handle(BehaviorSkinBase.java:96) at com.sun.javafx.scene.control.skin.BehaviorSkinBase$1.handle(BehaviorSkinBase.java:89) at com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:218) at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80) at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238) at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191) at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59) at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58) at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74) at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49) at javafx.event.Event.fireEvent(Event.java:198) at javafx.scene.Scene$MouseHandler.process(Scene.java:3757) at javafx.scene.Scene$MouseHandler.access$1500(Scene.java:3485) at javafx.scene.Scene.impl_processMouseEvent(Scene.java:1762) at javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2494) at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:381) at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java
内容的提问来源于stack exchange,提问作者Ivar Eriksson
相关产品推荐
相关产品推荐

