Когда я запускаю Java из файла .cmd Windows (здесь 32-разрядная версия Vista), команда 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. Что тут происходит?

3 ответа3

2

Другая возможность состоит в том, что есть вызываемый пакетный файл java, а не обычный java.exe (хотя пакетный файл может вызывать исполняемый файл, возможно, также предварительно настраивая такие вещи, как CLASSPATH). Выполнение пакетного файла от другого полностью передаст выполнение другому пакетному файлу, не возвращаясь к вызывающему. Чтобы выполнить его, а затем продолжить выполнение исходного пакетного файла, используйте call:

call java

И посмотри, имеет ли это значение.

0

Если у вас есть и 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:\>
0

Быстрый тест:

C:\> where java

С этим вы можете точно узнать, что выполняется.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .