Javado c из exec(String[] cmdarray)
говорит:
Параметры:
cmdarray
- массив, содержащий команду для вызова и его аргументы.
Его «аргументы» (множественное число) , что означает, что если вы хотите выполнить команду foo.exe bar abc
, то вам нужно передать { "foo.exe", "bar", "abc" }
, а не { "foo.exe", "bar abc" }
.
Для вашего кода это означает:
String[] startupOracle = new String[] {
"cmd",
"/c",
"start",
"cmd",
"/K",
"\"chcp 1251" +
" & " +
"C:\\app\\Raph\\product\\12.1.0\\dbhome_1\\bin\\sqlplus.exe username/password &startup\""
};
Или что-то в этом роде, хотя я думаю, что у вас есть некоторые проблемы с &
.