JavaFX应用特定Windows用户工具栏按钮无响应问题求助
JavaFX应用特定Windows用户工具栏按钮无响应问题求助
大家好,最近我发布了自己设计的一款JavaFX集邮应用的新版本,遇到了一个完全摸不着头脑的奇怪问题,希望这里有人之前见过类似情况,或者能给点排查方向的建议。
我的这款桌面应用是给邮票收藏者用的:用户加载一整版邮票的扫描图后,应用会提取出单个邮票,完成旋转、裁剪,最后保存到文件。
应用概述
- 技术栈:Java 21 + JavaFX 21做UI,OpenCV 4.9.0处理图像,还有几个库负责元数据读写
- 除了加载OpenCV库的一小段代码,全平台代码完全一致
- 用install4j打包成带JRE和所有依赖的单文件安装包,用户下载后直接安装运行,不需要额外配置
- 测试环境(MacOS Intel、Windows10/11 64位、Ubuntu)运行正常,几十位不同平台的用户反馈也没问题
诡异的问题现象
但有两位用户(一位Win10,一位Win11)报告了同一个问题:工具栏的所有按钮都完全无响应,但应用其他功能一切正常:
- 应用能正常启动,左侧侧边栏的控件和按钮都能正常工作
- 拖放图片到应用上可以正常处理:提取、旋转、裁剪、保存都没问题
- 点击工具栏按钮时,按钮会高亮显示已获得焦点,但就是没有任何功能触发——这些按钮的功能各不相同:有的是打开文件选择器加载/保存文件,有的是加载/保存/重置控件默认值,有的是打开子功能窗口,还有几个是开关类按钮控制应用功能,唯一的共同点就是它们都在工具栏里
已做的排查尝试
- 我通过Microsoft Teams远程观看了其中一位用户的操作,确认不是用户操作失误
- 我制作了一个开启错误日志的版本,让用户运行,结果日志只生成了一条错误:无法创建日志文件的锁文件,后续日志没记录到任何内容。异常栈如下:
java.nio.file.NoSuchFileException: C:\Users\[username omitted]\Desktop\error.log.lck at java.base/sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:85) at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:103) at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:108) at java.base/sun.nio.fs.WindowsFileSystemProvider.newFileChannel(WindowsFileSystemProvider.java:119) at java.base/java.nio.channels.FileChannel.open(FileChannel.java:309) at java.base/java.nio.channels.FileChannel.open(FileChannel.java:369) at java.logging/java.util.logging.FileHandler.openFiles(FileHandler.java:512) at java.logging/java.util.logging.FileHandler.<init>(FileHandler.java:308) at Main.<clinit>(Main.java:77) at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized0(Native Method) at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized(Unsafe.java:1160) at java.base/jdk.internal.reflect.MethodHandleAccessorFactory.ensureClassInitialized(MethodHandleAccessorFactory.java:300) at java.base/jdk.internal.reflect.MethodHandleAccessorFactory.newMethodAccessor(MethodHandleAccessorFactory.java:71) at java.base/jdk.internal.reflect.ReflectionFactory.newMethodAccessor(ReflectionFactory.java:159) at java.base/java.lang.reflect.Method.acquireMethodAccessor(Method.java:726) at java.base/java.lang.reflect.Method.invoke(Method.java:577) at com.exe4j.runtime.LauncherEngine.launch(LauncherEngine.java:84) at com.exe4j.runtime.WinLauncher.main(WinLauncher.java:94) at com.install4j.runtime.launcher.WinLauncher.main(WinLauncher.java:25)
- 考虑到日志错误可能和权限或安全软件有关,我让用户尝试以管理员身份运行,并且关闭杀毒软件,但问题依然存在
现在我实在没思路了,想请教大家:
- 有没有人遇到过类似的情况?
- 什么原因会导致只有工具栏按钮无响应,而应用其他功能都正常?
- 为什么只有部分Win10/11机器出现这个问题,同系统的其他机器却运行正常?
提前感谢大家的任何建议或解决方案!
备注:内容来源于stack exchange,提问作者PostmasterGS
相关产品推荐
相关产品推荐

