У меня есть фрагмент кода, который вызывает экземпляр терминала bash с помощью следующего -
proc = Runtime.getRuntime().exec("/bin/bash", null, working-dir);
и затем запускает команды unix на этом вызываемом экземпляре bash, который я используютакой объект PrintWriter -
PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(proc.getOutputStream())), true);
Затем я использую объект PrintWriter для фактического выполнения команд следующим образом -
out.println("pwd");
out.println("ls >a.txt");
В то время как обе команды кажутсячтобы работать отлично, у меня есть проблема в случае, когда я создаю команду, основанную на некотором пользовательском вводе.Конкретно, я создаю команду для отправки некоторых файлов на принтер в сети, и я делаю это так:
while ((strLine = br.readLine()) != null) {
cmd= blah +blah +blah;//Construction of the command
out.println(cmd);
}
На самом деле в приведенном выше фрагменте кода происходит следующее:br читает из файла, который содержит все файлы, которые нужно распечатать, а затем в команду входит строка с именем файла, и я записываю его в объект PrintWriter.
проблема, с которой я сталкиваюсь, заключается в том, чтоЯ предполагаю, что происходит какая-то очередь, и объект PrintWriter фактически не передает команду вызываемому экземпляру bash каждый раз, когда создается команда.Таким образом, в конце дня, если создается 40 команд, печатается только около 16-18 документов.Я думаю, это потому, что он отправляет все команды на принтер за один раз, что приводит к потере. Я хочу устранить эту потерю.
Любые указатели ??
Спасибо p1nG