Когда я выполняю Java из Windows .cmd файл (Vista, 32-разрядная здесь), команда Java заставляет пакетный файл прекращать выполнять дополнительные команды.
Например, это - простой test.cmd файл:
java
java
Это должно заставить Java печатать свое сообщение справки дважды. Однако, когда я выполняю его в cmd.exe, я получаю это:
C:\>test
C:\>java
Usage: java [-options] class [args...]
(to execute a class)
or java [-options] -jar jarfile [args...]
(to execute a jar file)
where options include:
-client to select the "client" VM
-server to select the "server" VM
...
C:\>
Пакетный файл просто выходит, когда Java выходит. Что продолжается здесь?
Другая возможность состоит в том, что существует batchfile под названием Java, который становится названным, а не нормальный java.exe (хотя пакетный файл может вызвать исполняемый файл, возможно также настроив вещи как ПУТЬ К КЛАССУ заранее). Выполнение batchfile от другого передаст выполнение другому batchfile полностью, не возвращаясь к invoker. Чтобы выполнить его и затем продолжить выполнение исходного пакетного файла, используйте вызов:
call java
И посмотрите, имеет ли это значение.
Если у Вас есть и test.bat и test.cmd, затем вводящий test
будет работать test.bat не test.cmd - пытается использовать команду test.cmd
вместо этого.
C:\>type test.bat @echo off echo a ============================================= java echo b ============================================= C:\>type test.cmd echo 1 ------------------------------------------------- java echo 2 ------------------------------------------------- java echo 3 ------------------------------------------------- C:\>test a ============================================= Usage: java [-options] class [args...] (to execute a class) or java [-options] -jar jarfile [args...] (to execute a jar file) where options include: -client to select the "client" VM -server to select the "server" VM -hotspot is a synonym for the "client" VM [deprecated] The default VM is client. ... b ============================================= C:\>