Mac 上的 JFileChooser 看不到中文字符命名的文件?

2024-01-08

该程序在Intellij中运行时运行良好(可以看到中文命名的文件)。

我将其构建到 .jar 文件中。执行了 jar 和JFileChooser无法看到那些文件。

我在 Windows 中尝试了该 jar,它工作得很好。


这个文件在 Mac OS X 10.8.2 上适合我:

import java.io.File;
import javax.swing.JFileChooser;
public class JFileChooserTest
{
  public static void main(String[] args)
  {
    System.out.println("file.encoding=" + System.getProperty("file.encoding"));
    String path;

    if(args.length > 0)
      path = args[0];
    else
      path = System.getProperty("user.dir", ".");

    File dir = new File(path);

    JFileChooser jfc = new JFileChooser(dir);
    int result = jfc.showOpenDialog(null);

    switch(result) {
      case JFileChooser.CANCEL_OPTION:
        System.out.println("User cancelled OPEN dialog.");
        break;
      case JFileChooser.APPROVE_OPTION:
        System.out.println("User chose file: " + jfc.getSelectedFile());
        break;
      case JFileChooser.ERROR_OPTION:
        System.out.println("User encountered an error");
        break;
     default:
       System.out.println("Confused");
       break;
    }

    System.exit(0);
  }
}

这是一个示例运行:

$ java -showversion JFileChooserTest 
java version "1.7.0_09"
Java(TM) SE Runtime Environment (build 1.7.0_09-b05)
Java HotSpot(TM) 64-Bit Server VM (build 23.5-b02, mixed mode)

file.encoding=UTF-8
User chose file: /.../测试文件.txt

这是另一个示例运行:

$ java -showversion -Dfile.encoding=ISO-8859-1 JFileChooserTest 
java version "1.7.0_09"
Java(TM) SE Runtime Environment (build 1.7.0_09-b05)
Java HotSpot(TM) 64-Bit Server VM (build 23.5-b02, mixed mode)

file.encoding=ISO-8859-1
User chose file: /.../????.txt

在这两种情况下,文件选择对话框都正确显示了文件名(测试文件.txt)。

请注意,使用java.awt.FileDialog将为您提供大多数 Mac OS 用户习惯看到的特定于平台的文件对话框。虽然它不是严格意义上的 Swing(并且功能集非常小),但它可能优于 SwingJFileChooser对于诸如“打开”和“保存”对话框之类的事情。 (在我的系统上它也显示中文字符没有问题)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Mac 上的 JFileChooser 看不到中文字符命名的文件? 的相关文章

随机推荐

  • 申请因缺乏 IPv6 支持而被拒绝 [已关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 My last release of application which is 12 8 is rejected by apple saying
  • Apache Geode Web 框架

    我们使用VS并集成了以下Web框架 https visualstudio microsoft com vs features web frameworks https visualstudio microsoft com vs featur
  • 带键值的数组长度,js

    我编写了这段代码 它应该解析给定的 paramUnparsed 它应该是以下形式的数组 key1 val1 key2 val2 keyn valn function parseParams paramUnparsed var params
  • 将 ListView 项目的 id 传递给 ActionMode.Callback 对象

    所以我现在的问题是 现在我长时间单击 ListView 中的一个项目 它会弹出一个上下文操作栏 传递到 onItemLongClick 的 id 是我想在 mActionModeCallback 的 on ActionItemClicked
  • ClearCase 适合我们的开发流程吗?

    那么 让我描述一下我们目前的情况 我们是一个由经验丰富的 Java 开发人员组成的小团队 6 人 迷失在一个主要由 SAP 和 Siebel 配置器组成的大型 IS 团队中 虽然所有其他团队目前都在使用 VSS 主要作为存储系统 但我们的团
  • 确定 R 中加载的对象的名称

    想象你有一个物体foo你另存为saved file rda如下 foo lt a save foo file saved file rda 假设你加载saved file rda进入具有多个对象的环境 但忘记了其中对象的名称saved fi
  • Sqlalchemy 与 postgres。尝试使用“DISTINCT ON”而不是“DISTINCT”

    我需要生成这样的查询 SELECT DISTINCT ON article code article code article title 首先 我尝试通过 ORM 不同的方法来制作它 并向它发送一个包含字段的列表 但这是行不通的 其次 我
  • 在为 ARM7 编译的 C 代码中,使用全局变量会提高还是降低性能?

    当为 ARM7 嵌入式平台进行编译时 在 C 代码中使用大量全局变量是否会降低或提高性能 代码库由多个 C 源代码文件组成 这些文件使用 extern 关键字引用彼此的全局变量 不同源代码文件中的不同函数引用不同的全局变量 有些变量是数组
  • 如何将 NSDate 转换为相对格式,如“今天”、“昨天”、“一周前”、“一个月前”、“一年前”?

    我想将 nsdate 转换为相对格式 例如 Today Yesterday a week ago a month ago a year ago date as it is 我已经为它编写了以下方法 但是它只是打印日期 你能告诉我应该是什么问
  • 存储WebView以供离线浏览

    页面加载后强制 Android 将 webview 存储到媒体的最佳方法是什么 更多细节 每个页面都将包含丰富的图像 脚本和样式 每页大约为 0 5 到 1 MB 一旦调用 OnFinishedLoading Override 它们就会被保
  • 无法消除包含 div 内的 2 个水平 div 之间的空间

    应该很容易吧 只需将外部包含 div 的填充设置为零 并将外部 div 内的两个并排 div 设置为 margin 0 但这对 2 个水平 div 之间的空间没有影响 我需要的是红色轮廓的左侧 div 来触摸绿色轮廓的右侧 div 尽管我努
  • Rails 4 - Yaml 配置文件

    我有这个文件config application yml settings info name MyAppName domain example com contact email email protected cdn cgi l ema
  • PHP 类型转换

    我想知道将值从一种类型转换为另一种类型的最佳方法是什么 我们应该使用哪种变体 intval value settype value int int value 它们都产生相同的结果 int value 与以下相比节省一个函数调用intval
  • Android 通话应用程序未重置音频流

    我设置了一个活动应用程序来使用自我管理连接服务 因为我们正在使用音频和视频并且希望能够利用该系统 然而 我们关闭连接或更改音频流的方式导致了一个问题 我将在此尽力描述该问题 当我开始应用程序的通话时 一切都按我们希望的方式工作 它以免提电话
  • 找不到关键字参数 '{'pk': ''}' 的反向 'plan_edit'。尝试了 1 个模式:['palan/edit$']

    我收到以下错误 找不到关键字参数 pk 的反向 plan edit 尝试了 1 个模式 palan edit 有谁知道如何解决它 urls py urlpatterns url r views post list name post lis
  • Android Studio - 检查代码 - 排除生成的文件

    有什么办法 如何排除 android 生成的文件 或手动指定排除的文件夹 分析 gt 检查代码 使用自定义范围 单击 分析 gt 检查代码 后 在 指定检查范围 对话框中 单击 自定义范围 后的 定义一个新的范围 递归包含Android a
  • 什么时候应该使用实体框架?

    我是实体框架的新手 当然 我在 SOF 上发现了一些关于目标用例的问题 让我给你一些信息 我不与不同的数据库供应商或不同的数据库打交道 一台 而且只有一台 SQL Server 2008 数据库的表少于 30 个 我真的需要重做事情并使用实
  • Multer 文件缓冲区丢失

    从以下返回的 req file 属性不包含缓冲区属性 https www npmjs com package multer https www npmjs com package multer 因此 当我尝试访问 req file buff
  • 使用 Android AccountManager 获取 gdata 的 authtoken

    所以我试图同步到谷歌文档 而不必询问用户的凭据 我使用此代码来获取身份验证令牌 AccountManager mgr AccountManager get activity authToken mgr blockingGetAuthToke
  • Mac 上的 JFileChooser 看不到中文字符命名的文件?

    该程序在Intellij中运行时运行良好 可以看到中文命名的文件 我将其构建到 jar 文件中 执行了 jar 和JFileChooser无法看到那些文件 我在 Windows 中尝试了该 jar 它工作得很好 这个文件在 Mac OS X