I have a urgent requirement to call an RPG Program from java. As suggested in this Accessing RPG on iSeries from Java question. I am planning to use JTOpen. But unfortunately I
there is a free AS400 server at http://pub400.com/ Hope this works!!
You used to be able to get free access to an iSeries at Innovative Systems (this service has been discontinued as of March 21 2012). On their machine you can experiment with RPG.
Some other remarks,
BTW I think you can forget about a RPG simulator for Windows. There may be some compiler may be around that I don't know of but that is not the specific thing about RPG, it is the fact that it runs on a iSeries. And unfortunately no iSeries emulator is available.
You might inquire with the folks at Infinite who have a product called Infinite I. It claims to enable RPG/400, ILE RPG, COBOL/400, ILE COBOL, DDS, & CL on Windows, Unix, or Linux. Integration with Java in this environment is not mentioned in their brochure.
As it has been already mentioned - there is no RPG simulator. What you might try is to register here for free iSeries account. The problem is that without any knowledge of OS/400 you won't get far. Do you have anyone in your company who can log in with you and help you with the environment?
Are there any RPG simulators for Windows?
A RPG simulator won't do you any good. What you'd need would be something like an "ILE simulator for Java". It isn't "RPG" that is being called from Java;, but rather it's an "ILE *PGM or *SRVPGM object with particular parameter-handling characteristics". (Okay, it's also possible to call OPM *PGM objects, but no need to discuss differences.)
The point is simply that a RPG simulator wouldn't be enough. You need an "environment simulator" that processes the parameter values for Java. If you actually had a "RPG simulator", it's effectively guaranteed that calls from Java (especially via JTOpen) are not going to work with anything running in it like they would through the live PCML interface. You could probably effect calls to such programs; the calls just wouldn't be coded the same way so the exercise would be pointless.
You can't worry about it if you aren't given access to an appropriate server. Just code procedures that encapsulate any remote calls and tune them to the server environment when the time comes for that.