実行ファイルのディレクトリってC#(.net framework)なら
FileInfo fileInfo = new FileInfo(Environment.GetCommandLineArgs()[0]); string dir = fileInfo.Directory.FullName;
で簡単に取れますよね。
javaだと「OSの違い」とか「jarパッケージかclassか」とかでもう少し長いコードが必要なようです。
public class Util
{
public static String getClassDir(Class appClass)
{
String className = appClass.getSimpleName() + ".class";
String path = appClass.getResource(className).getFile();
int jarIndex = path.toLowerCase().indexOf(".jar!/");
if(0 <= jarIndex)
path = path.substring(0, jarIndex);
path = path.substring(0, path.lastIndexOf('/') + 1);
if(path.startsWith("file:"))
path = path.substring("file:".length() );
if (path.matches("^/[a-zA-Z]:/.*"))
path = path.substring(1);
return path;
}
}
使い方は、
String dir = Util.getClassDir(Test.class);
のようにして「型名.class」の引数を渡して呼びます。 ちなみに標準apiのクラスを引数にするとjreのディレクトリが帰ります。
注) 私のPC(windows7)でしか動作確認していません。