2009-06-09 5 views
2

私たちのアプリケーションでは、ユーザーはファイルとディレクトリを開くことができます。Javaでファイル名の8.3または 'short'(Windows)版を生成する方法はありますか?

のJava 6は素晴らしい作品...

java.awt.Desktop.getDesktop().open(file); 

を提供してくれます。我々はJava 5の互換性を確保する必要があるためしかし、我々はまた、cmd.exestartコマンドを呼び出すことにより、ファイルを開く方法を実施...

String command = "cmd.exe start ..."; 
Runtime.getRuntime().exec(command); 

問題が現れるところです。 startコマンドは8.3のファイル名しか処理できないように思われます。つまり、短くない(8.3)ファイル/ディレクトリ名を指定すると、startコマンドが失敗します。

これらの短い名前を簡単に生成する方法はありますか?またはその他の回避策?これは、ファイル名にスペースが含まれている可能性がある、Windowsの起動コマンドにダミータイトルを渡すことが重要です。この

import java.io.IOException; 

class StartExcel { 
    public static void main(String args[]) 
     throws IOException 
    { 
     String fileName = "c:\\temp\\xls\\test2.xls"; 
     String[] commands = {"cmd", "/c", "start", "\"DummyTitle\"",fileName}; 
     Runtime.getRuntime().exec(commands); 
    } 
} 

のようなものを試してみてくださいhttp://dolf.trieschnigg.nl/eightpointthree/eightpointthree.html

答えて

6

+0

このトリックをしました。ありがとう! – thedude19

+1

それは機能です...笑 –

0

はこれを試してみてください。それは機能です。

0

それともあなたは試みることができる:

Runtime.getRuntime().exec(
    new String[] { System.getenv("windir") + "\\system32\\rundll32.exe", 
    "shell32.dll,ShellExec_RunDLL", "http://www.stackoverflow.com" }); 

出典:http://www.rgagnon.com/javadetails/java-0014.html

関連する問題