aspose file tools*
The moose likes Beginning Java and the fly likes How to connect to an UNIX server from Java application Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Beginning Java
Bookmark "How to connect to an UNIX server from Java application" Watch "How to connect to an UNIX server from Java application" New topic
Author

How to connect to an UNIX server from Java application

Karthikeyan Thyagarajan
Greenhorn

Joined: Dec 01, 2004
Posts: 2
Hi,

I need to execute a shell script from my Java application. I hope this can be done by using Runtime.exec(). But the problem here is my java application resides in windows NT.. and i have no idea on how to connect an UNIX server from my Java application.

Kindly provide me a solution for this.

- Karthik
Michael Yuan
author
Ranch Hand

Joined: Mar 07, 2002
Posts: 1427
Not related to J2MED. I will move it to Java Beginner Forum.


Seam Framework: http://www.amazon.com/exec/obidos/ASIN/0137129394/mobileenterpr-20/
Ringful: http://www.ringful.com/
Leslie Chaim
Ranch Hand

Joined: May 22, 2002
Posts: 336
Agree, it's not J2MED related but the question is not for beginners.

One way to achive this is with rsh (or remsh) on Windows, but you'll run into other issues such as security and what to put in the .rhosts file which you may want to address in the Unix/Linux forum.

Assuming you have rsh on Windows either natively (in C:\WINNT\system32) or from cygwin you first should test if you can run it bare bones from the cmd line.

Test if this works from a DOS window.


Then you simply put that line to your Process.exec...
[ December 01, 2004: Message edited by: Leslie Chaim ]

Normal is in the eye of the beholder
Karthikeyan Thyagarajan
Greenhorn

Joined: Dec 01, 2004
Posts: 2
Hi Leslie,

I had tried executing rsh from cmd prompt and its working fine. And i had applied the same in the following Java code. When i tried to execute "rsh <<hostname>> <<loginname>> simple" from the cmd prompt its returning the correct value. Here "simple" is a shell script in which im jus printing "Success". And this gets displayed when i execute the above mentioned command. But im not able to capture that output in the java code. I had tried capturing in 3 diff ways but none is returning the value.

Now how should i capture the return value ?

public void usingRSH()
{
try{
Runtime run = Runtime.getRuntime();
Process pro = run.exec("rsh <<hostname>> <<loginname>> simple");
pro.waitFor();

System.out.println("B4");

DataInputStream dataIn = new DataInputStream(pro.getInputStream());
while(dataIn.available() != 0){
System.out.println("DIS : " + dataIn.readLine());
}

BufferedReader in = new BufferedReader(
new InputStreamReader(pro.getInputStream()));

String line = null;
while ((line = in.readLine()) != null) {
System.out.println("BR : " + line);
}

BufferedReader out = new BufferedReader(new InputStreamReader(pro.getInputStream()));
while(out.read() != -1)
{
System.out.println("BReader : " + out.readLine());
}

System.out.println("After");
}catch(Exception expObj){
System.err.println("Error in usingRSH : " + expObj);
}
}
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: How to connect to an UNIX server from Java application