自己写了一个java项目程序,做成了一个应用程序,之前一直都是点开就可以运行,各种功能都没问题。
突然有一天,点开之后发现所有要在系统磁盘上选择文件的功能都没响应了,并且程序报了如下错误。
[AWT-EventQueue-0] INFO com.jarvish.client.Login - ==================LoginInitStart
[AWT-EventQueue-0] INFO com.jarvish.client.Login - ==================LoginInitEnd
[AWT-EventQueue-0] INFO com.jarvish.client.App - ==================AppInitStart
[AWT-EventQueue-0] INFO com.jarvish.client.App - ==================AppInitEnd
八月 10, 2023 2:48:35 下午 org.ansj.util.MyStaticValue warn
警告: not find library.properties in classpath use it by default !
八月 10, 2023 2:48:35 下午 org.ansj.dic.impl.File2Stream info
信息: path to stream library/ambiguity.dic
八月 10, 2023 2:48:35 下午 org.ansj.library.AmbiguityLibrary error
严重: Init ambiguity library error :org.ansj.exception.LibraryException: path :library/ambiguity.dic file:C:\我的数据\学习资料\研究生生涯\课题组\课题组学习内容\我的研究工程资料\SE_Standalone(预览版)\library\ambiguity.dic not found or can not to read, path: library/ambiguity.dic
八月 10, 2023 2:48:35 下午 org.ansj.dic.impl.File2Stream info
信息: path to stream library/default.dic
八月 10, 2023 2:48:35 下午 org.ansj.library.DicLibrary error
严重: Init dic library error :org.ansj.exception.LibraryException: path :library/default.dic file:C:\我的数据\学习资料\研究生生涯\课题组\课题组学习内容\我的研究工程资料\SE_Standalone(预览版)\library\default.dic not found or can not to read, path: library/default.dic
八月 10, 2023 2:48:50 下午 sun.awt.shell.Win32ShellFolderManager2 getNetwork
警告: Cannot access 'Network'
java.io.IOException: Could not get shell folder ID list
at sun.awt.shell.Win32ShellFolder2.getFileSystemPath0(Native Method)
at sun.awt.shell.Win32ShellFolder2.access$800(Win32ShellFolder2.java:72)
at sun.awt.shell.Win32ShellFolder2$7.call(Win32ShellFolder2.java:588)
at sun.awt.shell.Win32ShellFolder2$7.call(Win32ShellFolder2.java:586)
at sun.awt.shell.Win32ShellFolderManager2$ComInvoker.invoke(Win32ShellFolderManager2.java:609)
at sun.awt.shell.ShellFolder.invoke(ShellFolder.java:518)
at sun.awt.shell.Win32ShellFolder2.getFileSystemPath(Win32ShellFolder2.java:586)
at sun.awt.shell.Win32ShellFolder2.composePathForCsidl(Win32ShellFolder2.java:222)
at sun.awt.shell.Win32ShellFolder2.<init>(Win32ShellFolder2.java:235)
at sun.awt.shell.Win32ShellFolderManager2.getNetwork(Win32ShellFolderManager2.java:208)
at sun.awt.shell.Win32ShellFolder2.getFileSystemPath(Win32ShellFolder2.java:571)
at sun.awt.shell.Win32ShellFolder2.access$400(Win32ShellFolder2.java:72)
at sun.awt.shell.Win32ShellFolder2$10.call(Win32ShellFolder2.java:759)
at sun.awt.shell.Win32ShellFolder2$10.call(Win32ShellFolder2.java:750)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at sun.awt.shell.Win32ShellFolderManager2$ComInvoker$3.run(Win32ShellFolderManager2.java:585)
at java.lang.Thread.run(Thread.java:748)
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at sun.awt.shell.Win32ShellFolder2.getFileSystemPath(Win32ShellFolder2.java:571)
at sun.awt.shell.Win32ShellFolder2.access$400(Win32ShellFolder2.java:72)
at sun.awt.shell.Win32ShellFolder2$10.call(Win32ShellFolder2.java:759)
at sun.awt.shell.Win32ShellFolder2$10.call(Win32ShellFolder2.java:750)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at sun.awt.shell.Win32ShellFolderManager2$ComInvoker$3.run(Win32ShellFolderManager2.java:585)
at java.lang.Thread.run(Thread.java:748)
下面这个网址和我遇到的问题很像。不过我电脑上只有一个用户且就是管理员,应该不是账户的问题
http://www.360doc.com/content/11/0622/20/5546717_128787757.shtml
有没有人遇到过类似的问题呀,请教一下解决方案。
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
空指针异常了,看下业务代码哪里抛出的异常,对可能为空的对象,做个非空判断。
初始化ambiguity库和dic库时出错。错误信息指出路径library/ambiguity.dic和library/default.dic的文件不存在或无法读取。
最后一行显示了一个警告,表示无法访问'Network',并且给出了一个java.io.IOException异常,说明无法获取shell文件夹ID列表。
应该是有一些权限问题导致无法访问某些文件或文件夹导致这个报错
方便把源码共享出来看下不?可以的话,把代码上传到云盘中。
看报错可能是权限问题,你的代码要读library/ambiguity.dic和library/default.dic这两个文件的时候找不到,或无法读取这两文件。
你可以看一下这些文件是不是在你写的这个指定的路径中,而且还需要确认下你的代码有没有权限来读取这些文件。
如果以上回答对您有所帮助,点击一下采纳该答案~谢谢
项目中是不是使用文件选择器组件,可以参考下这篇文章:https://forums.oracle.com/ords/apexds/post/jfilechooser-could-not-get-shell-folder-id-list-7075%E3%80%82
应该是有权限原因,检查一下要打开的目录是否被注册了管理员权限。
怎么还有空指针,还有很多初始化的错误,还有中文路径,全是在c盘中,确定没有删除吗
【相关推荐】
方法二:直接在左下角搜索框输入 注册表编辑器,然后打开
2.依次打开HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace,可以直接在下面复制
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace
3.先备份注册表再删除项目(对自己有信心的大佬备份这步可以跳过,但是说一下凡是涉及注册表的问题一旦删错后果会很麻烦,所以为了安全起见,我推荐还是先备份一下比较好)
备份具体步骤如下:
(1)点击文件,使用导出选项
(2)选择注册表导出文件所在位置(我推荐在电脑桌面上新建一个注册表文件夹,将导出文件存放在注册表文件夹下,这样会很方便,需要用的时候直接回到桌面就能使用,方便、快捷、直观),同时输入文件名。
删除的具体步骤如下:
4.最后重启计算机,查看空白图标是否已删除
PS:
使用这种方法也可以用于删除设备和驱动器栏目中自己用不到也关不掉的应用快捷入口图标。具体演示就不再赘述了。
相关文章引用如下:
你要不试试用管理员权限执行一下这个exe文件?按住shift 右键的时候应该能看到以管理员运行
🔋 jdk是不是做过升级了,或者改动了,
你打包运行试试:
>java -jar 程序.jar
如果报错,则需要换jdk版本了,有可能是jdk bug。
java项目目录打不开的解决方法
将 eclipse 工作目录中的 .metadata 文件彻底删除,然后再启动 eclipse, 启动后, eclipse 会提示让你重新选择工作目录,但是 之前对eclipse 的设置会丢失,eclipse 中的项目也会变成空,但项目并没有删除,还在你的目录 下,这时就要重新导入项目即可.
你把你的项目放到一个不含中文路径的位置,再试试运行吧
将路径中“\”改成“/”试试
Ansj 库在初始化时无法找到或读取某些文件,导致出现异常。这可能是由于文件路径错误、文件损坏或权限问题等原因引起的。
确保所有需要的文件都具有正确的读权限。检查与 AWT 相关的设置和代码,特别是与文件选择器相关的部分。可以尝试调试或日志记录来查看 AWT 事件队列和文件选择器的状态和操作。重新编译和部署