/* * Copyright (c) 2004, 2019, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. * * This code is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA * or visit www.oracle.com if you need additional information or have any * questions.
*/
/* @test * @bug 5006520 * @summary Check many different ways to run Windows programs * @author Martin Buchholz * @key randomness
*/
publicstaticvoid main(String[] args) throws Exception {
File systemRoot =
getenv("SystemRoot") != null ? new File(getenv("SystemRoot")) :
getenv("WINDIR") != null ? new File(getenv ("WINDIR")) : null; if (systemRoot == null || ! systemRoot.isDirectory()) return; // Not Windows as we know it
// Win9x systems don't have a cmd.exe if (new File(systemDirW, "cmd.exe").exists()) { try {
out.println("Running cmd.exe tests...");
writeFile("cdcmd.cmd", "@echo off\r\nCD\r\n");
writeFile("cdbat.bat", "@echo off\r\nCD\r\n");
checkCD("cmd", "cmd.exe",
systemDirW + "\\cmd.exe", // Only the ".exe" extension can be omitted
systemDirW + "\\cmd",
systemDirM + "/cmd.exe",
systemDirM + "/cmd", "/" + systemDirM + "/cmd", "cdcmd.cmd", "./cdcmd.cmd", ".\\cdcmd.cmd", "cdbat.bat", "./cdbat.bat", ".\\cdbat.bat");
} finally { new File("cdcmd.cmd").delete(); new File("cdbat.bat").delete();
}
}
// 16-bit apps like command.com must have a console; // fix this someday...
// // Win64 systems don't have a command.com // if (new File(systemDirW, "command.com").exists() // // no output if running without a console; // // fix this in Mustang // && ! outputOf("command.com", "/C", "CD").equals("")) { // out.println("Running command.com tests..."); // checkCD("command.com", // systemDirM + "/command.com", // systemDirW + "\\command.com"); // }
// Win9x systems have a %SYSTEMDRIVE%\command.com // if (new File("C:\\COMMAND.COM").exists() // && ! outputOf("COMMAND.COM", "/C", "CD").equals("")) { // out.println("Running COMMAND.COM tests..."); // checkCD("C:/command.com", // "C:\\command.com"); // }
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.