unix in java example

Hi,

I am running below exam in eclipse

https://www.mkyong.com/java/how-to-execute-shell-command-from-java/

getting below errrors.

Bad option -c.


Usage: ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS]
            [-r count] [-s count] [[-j host-list] | [-k host-list]]
            [-w timeout] [-R] [-S srcaddr] [-4] [-6] target_name

Options:
    -t             Ping the specified host until stopped.
                   To see statistics and continue - type Control-Break;
                   To stop - type Control-C.
    -a             Resolve addresses to hostnames.
    -n count       Number of echo requests to send.
    -l size        Send buffer size.
    -f             Set Don't Fragment flag in packet (IPv4-only).
    -i TTL         Time To Live.
    -v TOS         Type Of Service (IPv4-only. This setting has been deprecated
                   and has no effect on the type of service field in the IP Header).
    -r count       Record route for count hops (IPv4-only).
    -s count       Timestamp for count hops (IPv4-only).
    -j host-list   Loose source route along host-list (IPv4-only).
    -k host-list   Strict source route along host-list (IPv4-only).
    -w timeout     Timeout in milliseconds to wait for each reply.
    -R             Use routing header to test reverse route also (IPv6-only).
    -S srcaddr     Source address to use.
    -4             Force using IPv4.
    -6             Force using IPv6.


package sample;

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class ExecuteShellComand {

	public static void main(String[] args) {

		ExecuteShellComand obj = new ExecuteShellComand();

		String domainName = "google.com";

		//in mac oxs
		String command = "ping -c 3 " + domainName;

		//in windows
		//String command = "ping -n 3 " + domainName;

		String output = obj.executeCommand(command);

		System.out.println(output);

	}

	private String executeCommand(String command) {

		StringBuffer output = new StringBuffer();

		Process p;
		try {
			p = Runtime.getRuntime().exec(command);
			p.waitFor();
			BufferedReader reader =
                            new BufferedReader(new InputStreamReader(p.getInputStream()));

                        String line = "";
			while ((line = reader.readLine())!= null) {
				output.append(line + "\n");
			}

		} catch (Exception e) {
			e.printStackTrace();
		}

		return output.toString();

	}

}

Open in new window

please advise
LVL 7
gudii9Asked:
Who is Participating?

Improve company productivity with a Business Account.Sign Up

x
 
Gerwin Jansen, EE MVEConnect With a Mentor Topic Advisor Commented:
You are running this program under Windows, not Unix/Linux. The output you see is from the Windows ping command.

Change like this:


            //in mac oxs
            // String command = "ping -c 3 " + domainName;

            //in windows
            String command = "ping -n 3 " + domainName;

            String output = obj.executeCommand(command);
0
 
Thomas WheelerConnect With a Mentor Commented:
it's saying that the ping utility that is being called uses -n not -c for the count
0
 
gudii9Author Commented:
package sample;

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class ExecuteShellComand {

	public static void main(String[] args) {

		ExecuteShellComand obj = new ExecuteShellComand();

		String domainName = "google.com";

		//in mac oxs
		//String command = "ping -c 3 " + domainName;

		//in windows
		//String command = "ping -n 3 " + domainName;

		//String output = obj.executeCommand(command);
		 String command = "ping -n 3 " + domainName;

         String output = obj.executeCommand(command);
		System.out.println(output);

	}

	private String executeCommand(String command) {

		StringBuffer output = new StringBuffer();

		Process p;
		try {
			p = Runtime.getRuntime().exec(command);
			p.waitFor();
			BufferedReader reader =
                            new BufferedReader(new InputStreamReader(p.getInputStream()));

                        String line = "";
			while ((line = reader.readLine())!= null) {
				output.append(line + "\n");
			}

		} catch (Exception e) {
			e.printStackTrace();
		}

		return output.toString();

	}

}

Open in new window

above gave below output
Pinging google.com [64.233.177.102] with 32 bytes of data:
Request timed out.
Request timed out.
Request timed out.

Ping statistics for 64.233.177.102:
    Packets: Sent = 3, Received = 0, Lost = 3 (100% loss),

not sure why timing out. is it due to firewall?
0
Get expert help—faster!

Need expert help—fast? Use the Help Bell for personalized assistance getting answers to your important questions.

 
gudii9Author Commented:
package sample;

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class ExecuteShellComand {

	public static void main(String[] args) {

		ExecuteShellComand obj = new ExecuteShellComand();

		String domainName = "google.com";

		//in mac oxs
		//String command = "ping -c 3 " + domainName;

		//in windows
		//String command = "ping -n 3 " + domainName;

		//String output = obj.executeCommand(command);
		 String command = "ping -n 3 " + domainName;

         String output = obj.executeCommand(command);
		System.out.println(output);

	}

	private String executeCommand(String command) {

		StringBuffer output = new StringBuffer();

		Process p;
		try {
			p = Runtime.getRuntime().exec(command);
			p.waitFor();
			BufferedReader reader =
                            new BufferedReader(new InputStreamReader(p.getInputStream()));

                        String line = "";
			while ((line = reader.readLine())!= null) {
				output.append(line + "\n");
			}

		} catch (Exception e) {
			e.printStackTrace();
		}

		return output.toString();

	}

}

Open in new window

above gave below output
Pinging google.com [64.233.177.102] with 32 bytes of data:
Request timed out.
Request timed out.
Request timed out.

Ping statistics for 64.233.177.102:
    Packets: Sent = 3, Received = 0, Lost = 3 (100% loss),

not sure why timing out. is it due to firewall?
0
 
Gerwin Jansen, EE MVETopic Advisor Commented:
Try another site to ping.

But from your other question: you cannot download from a Cygwin mirror, you have similar issues here -> fix your internet setup first...
0
 
Gerwin Jansen, EE MVETopic Advisor Commented:
So your program in Eclipse is working, your internet connection issue is not what we can solve here for you.
0
 
gudii9Author Commented:
when i used second radio button optiuon which says like 'internet proxy' that worked. Then it gave lot of urls and selected one and next next..... worked.Direct radio button option did not work
0
 
gudii9Author Commented:
one other thing i did different is run as administrator
0
 
gudii9Author Commented:
any link on step by step examples of unix on cygwin examples starting from hello world to more complex loops etc
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.