2023-01-20 274
我希望在Windows Vista/2008 Machine上从Java创建Symlinks(软链接).我对我需要召集JNI这样做的想法感到满意.我在实际的C代码方面得到帮助.创建链接的适当系统调用是什么?对有关该主题的一些良好文档的指示将不胜感激.
Windows中的符号链接是使用 createSymboliclink api function ,它的参数非常类似于 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打交道,所以我可能忽略了做这项工作的一些优点…
这已经在我的列表中尝试,从我的笔记中:
API:
BOOLEAN WINAPI CreateSymbolicLink(
__in LPTSTR lpSymlinkFileName,
__in LPTSTR lpTargetFileName,
__in DWORD dwFlags
);
一些C#示例:
一个C ++示例,这是我正在阅读的另一篇文章中的CNP.我尚未对其进行测试,因此请谨慎使用.
typedef BOOL (WINAPI* CreateSymbolicLinkProc) (LPCSTR, LPCSTR, DWORD);
void main(int argc, char *argv[])
{
HMODULE h;
CreateSymbolicLinkProc CreateSymbolicLink_func;
LPCSTR link = argv[1];
LPCSTR target = argv[2];
DWORD flags = 0;
h = LoadLibrary("kernel32");
CreateSymbolicLink_func =
(CreateSymbolicLinkProc)GetProcAddress(h,
if (CreateSymbolicLink_func == NULL)
{
fprintf(stderr, "CreateSymbolicLinkA not available\n");
} else
{
if ((*CreateSymbolicLink_func)(link, target, flags) == 0)
{
fprintf(stderr, "CreateSymbolicLink failed: %d\n",
GetLastError());
} else
{
printf("Symbolic link created.");
}
}
}
这样说,我不会使用此代码:-)我要么倾向于分叉mklink,要么从Jruby/jpython查看本机库(对不起,由于网络连接是淡淡的,我无法查找ATM).我似乎还记得Jruby写了一个将各种Posix API的库写入Java(认为像Ruby合规性所需的Chown一样,但不是跨平台).似乎对此非常满意的Jpython人正在使用该图书馆.如果此库不提供SYM链接支持,我会感到惊讶.
您不能只是呼叫命令行并使用 mklink ?
以上所述是小编给大家介绍的如何在Windows Vista中创建符号链接?,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持!
原文链接:https://77isp.com/post/26129.html
=========================================
https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。
数据库技术 2022-03-28
网站技术 2022-11-26
网站技术 2023-01-07
网站技术 2022-11-17
Windows相关 2022-02-23
网站技术 2023-01-14
Windows相关 2022-02-16
Windows相关 2022-02-16
Linux相关 2022-02-27
数据库技术 2022-02-20
抠敌 2023年10月23日
嚼餐 2023年10月23日
男忌 2023年10月22日
瓮仆 2023年10月22日
簿偌 2023年10月22日
扫码二维码
获取最新动态