您可以使用 JNI 或 JNA 更改进程的实际工作目录。
使用 JNI,您可以使用本机函数来设置目录。POSIX 方法是chdir()
. 在 Windows 上,您可以使用SetCurrentDirectory()
.
使用 JNA,您可以将本机函数包装在 Java 绑定器中。
对于 Windows:
private static interface MyKernel32 extends Library {
public MyKernel32 INSTANCE = (MyKernel32) Native.loadLibrary("Kernel32", MyKernel32.class);
/** BOOL SetCurrentDirectory( LPCTSTR lpPathName ); */
int SetCurrentDirectoryW(char[] pathName);
}
对于 POSIX 系统:
private interface MyCLibrary extends Library {
MyCLibrary INSTANCE = (MyCLibrary) Native.loadLibrary("c", MyCLibrary.class);
/** int chdir(const char *path); */
int chdir( String path );
}