Я предлагаю использовать Java Toolbox для Java от IBM. Поместите JT400.jar в ваш classpath (или JT400Ntv.jar, если Java работает на iSeries). Я использовал как класс ProgramCall, так и классы CommandCall.
Класс com.ibm.as400.access.CommandCall прост в использовании. Он имеет простой конструктор, которому вы передаете класс com.ibm.as400.access.AS400. Затем просто используйте метод run, как этот:
CommandCall command = new CommandCall(as400);
command.run("CPYF FROMFILE(BLAH) TOFILE(BLAHBLAH) CRTFILE(*YES)");
Конечно, вы бы не использовали эту конкретную команду CL, но вы поняли идею. При использовании класса CommandCall всегда полезно обрабатывать любые сообщения, поступившие от команды. В одной программе, для которой я использую это, я отображаю сообщения пользователю в текстовом поле на их экране следующим образом:
AS400Message[] messageList = command.getMessageList();
for (int i=0;i < messageList.length;i++) {
String sMessageText = messageList[i].getText();
sMessage+=sMessageText + "\n";
}
Класс com.ibm.as400.access.ProgramCall требует больше работы, но позволяет получить доступ к возвращаемым параметрам. Я использую это чаще, потому что я обычно вызываю существующие рабочие программы RPG, которые возвращают значения. Для этого определите массив com.ibm.as400.access.ProgramParameter. При передаче параметров в программу из Java не забудьте преобразовать их в дружественные для AS / 400 значения, используя класс, такой как com.ibm.as400.access.AS400Text. Детали команды ProgramCall лучше изучены с использованием документации IBM: http://publib.boulder.ibm.com/infocenter/iseries/v5r4/index.jsp?topic=/rzahh/page1.htm