我希望在Windows Vista/2008计算机上从Java创建符号链接(软链接).我很高兴我需要呼吁JNI这样做.我虽然在实际的C代码上寻求帮助.创建链接的适当系统调用是什么?关于这个主题的一些好的文件的指针将非常感谢.
Windows中的符号链接是使用CreateSymbolicLink API函数创建的,该函数的参数与Mklink命令行实用程序接受的命令行参数非常相似.
假设您正确引用了JNI和Win32 SDK标头,那么您的代码可以简单如下:
JNIEXPORT jboolean JNICALL Java_ClassName_MethodName (JNIEnv *env, jstring symLinkName, jstring targetName) { const char *nativeSymLinkName = env->GetStringUTFChars(symLinkName, 0); const char *nativeTargetName = env->GetStringUTFChars(targetName, 0); jboolean success = (CreateSymbolicLink(nativeSymLinkName, nativeTargetName, 0) != 0); env->ReleaseStringUTFChars(symLinkName, nativeSymLinkName); env->ReleaseStringUTFChars(targetName, nativeTargetName); return success; }
请注意,这只是我的头脑,而且我没有多年处理过JNI,所以我可能忽略了使这项工作更精细的一些方面......