当前位置: 首页 > 面试题库 >

Mac上的JFileChooser无法看到以中文字符命名的文件?

濮阳霄
2023-03-14
问题内容

在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)。

请注意,using java.awt.FileDialog将为您提供大多数Mac
OS用户用来查看的特定于平台的文件对话框。尽管它不是严格意义上的Swing(并且具有很小的功能集),但它可能比JFileChooser诸如OPEN和SAVE对话框之类的要优越。(它也显示汉字,而我的系统没有问题)。



 类似资料:
  • 我有一个名为的表,它只有一列。 的输出是: 当我运行此查询:时,将插入这些值。 但是,当我尝试执行此查询:时,结果是: 的结果为: 我哪里犯错了?

  • 问题内容: 我试图编写一个文件名带有特殊字符的文件,例如“téééê.mp3”,但文件名始终保留“?” 我尝试了几种方法来代替字符“é”,但没有找到解决方法: 我也尝试过这种方式。 问题答案: 尝试: 现在,如果这是您的文件系统不支持此类文件名的问题,您将得到一个;。不同于,新的API拒绝创建可能最终无法读取的文件名。 如果确实无法创建路径,那么,您将必须找到某种逃避和撤消逃避的方法。也许写一个别

  • 我有个问题。My laravel在共享主机上看不到图像。 我有公共文件夹在~/域/DOMAIN/public_html/APP和其余的文件在~/域/DOMAIN/文件。 我的文件正在上载到~/domains/DOMAIN/files/storage/app/public/uploads/avatars 但在应用程序中,我看不到这一点。 这是上传代码: 你能帮我做什么吗?

  • 我正在手动将一些Excel文件上传到Azure Blob存储(已启用Data Lake Store Gen2)。上传文件后,我可以在通知窗口中看到上传状态,但在相应的文件夹中看不到该文件。尝试了不同的文件,但有相同的问题。它一直工作到今天早上。文件大小:~150Kb 知道吗?

  • 本文向大家介绍python写入中英文字符串到文件的方法,包括了python写入中英文字符串到文件的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了python写入中英文字符串到文件的方法。分享给大家供大家参考。具体分析如下: python中如果使用系统默认的open方法打开的文件只能写入ascii吗,如果要写入中文需要用到codecs模块,下面的代码向 c:/1.txt文件写入 ”你好

  • 问题内容: 我在Linux机器上有一个项目,其中包含带有在Windows中被认为是非法/保留的字符的文件(http://msdn.microsoft.com/zh- cn/library/aa365247%28VS.85%29.aspx )。该项目在多个文件夹中有10,000多个文件,我将确定这些文件的路径。 我可以为每个非法/保留字符,但是有一种更简单的方法来查找包含以下内容的所有文件 确定后,