私たちのアプリケーションでは、ユーザーはファイルとディレクトリを開くことができます。Javaでファイル名の8.3または 'short'(Windows)版を生成する方法はありますか?
のJava 6は素晴らしい作品...
java.awt.Desktop.getDesktop().open(file);
を提供してくれます。我々はJava 5の互換性を確保する必要があるためしかし、我々はまた、cmd.exe
でstart
コマンドを呼び出すことにより、ファイルを開く方法を実施...
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
このトリックをしました。ありがとう! – thedude19
それは機能です...笑 –