一種の「ランチャー」アプリケーションとして作成したWindowsプログラムを介してJavaプログラムを実行しようとしています。通常、このJavaプログラムを実行するには、バッチファイルを実行するか、cmdプロンプトウィンドウ(Windowsキー+ R、「cmd」と入力)に直接移動して、と入力しjava -Xmx4096M -Dsun.java2d.noddraw=true [...]
ます。重要なのは、このウィンドウではJavaが認識されているように見えるということです。
一方、アプリケーションからコマンドプロンプトを起動すると、Javaは「内部または外部コマンド、操作可能なプログラム、またはバッチファイルとして認識されなくなります」。
TCHAR szPath[MAX_PATH];
if(SUCCEEDED(SHGetFolderPath(NULL, CSIDL_SYSTEM, NULL, 0, szPath))) {
PathAppend(szPath, TEXT("cmd.exe"));
ShellExecuteW( GetSafeHwnd(),L"open", szPath, NULL, NULL, 1 );
}