Intellijで実行すると、プログラムは正常に機能しました(中国語の名前付きファイルを表示できます)。
.jarファイルに組み込みました。jarを実行しましたが、JFileChooser
これらのファイルを表示できません。
そして、私はWindowsでjarファイルを試しましたが、完全に正常に動作します。
Intellijで実行すると、プログラムは正常に機能しました(中国語の名前付きファイルを表示できます)。
.jarファイルに組み込みました。jarを実行しましたが、JFileChooser
これらのファイルを表示できません。
そして、私はWindowsでjarファイルを試しましたが、完全に正常に動作します。
これは、Mac OSX10.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
を使用すると、ほとんどのMacOSユーザーが見慣れているプラットフォーム固有のファイルダイアログが表示されることに注意してください。厳密にはSwingではありませんが(非常に小さな機能セットがあります)、JFileChooser
OPENダイアログやSAVEダイアログなどにはおそらく優れています。(私のシステムでは問題なく漢字も表示されます)。