1
在Intellij中運行的程序運行良好(可以看到中文命名文件)。Mac上的JFileChooser無法看到由中文字符命名的文件?
我將它構建到一個.jar文件中。執行了jar和JFileChooser
無法看到這些文件。
我試過在Windows中的jar,它工作得很好。
在Intellij中運行的程序運行良好(可以看到中文命名文件)。Mac上的JFileChooser無法看到由中文字符命名的文件?
我將它構建到一個.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(並且具有非常小的特徵集合),但對於諸如OPEN和SAVE對話之類的東西,它可能優於JFileChooser
。 (它也顯示中文字符在我的系統上沒有問題)。
所以它在IntelliJ中的Mac上工作,但是當你...什麼時候不工作?另外,當你說「看不見」時,你的意思是說他們根本沒有出現,或者他們被顯示但沒有正確(像亂碼等)? –