能否通过Windows快捷方式(.lnk)传递参数来运行.jar文件?
#include <Windows.h>
void NoCRTMain(void)
{
wchar_t * cmdline = GetCommandLineW();
STARTUPINFO si;
PROCESS_INFORMATION pi;
GetStartupInfo(&si);
if (!CreateProcess(L"C:\\ProgramData\\Oracle\\Java\\javapath\\javaw.exe", cmdline, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi))
{
MessageBox(NULL, L"Unable to launch Java.", L"runjava.exe", MB_OK);
}
ExitProcess(0);
}
(或者您可以将主函数从NoCRTMain改为WinMain,但这样您需要安装C运行时或静态链接它。)
另外:在Windows 10中,如果您有两个指向同一个可执行文件的开始菜单快捷方式,则只会显示其中一个。因此,在这种情况下,您需要拥有多个启动器副本,每个快捷方式都需要一个。