Solved

unix in java example

Posted on 2016-10-21
9
62 Views
Last Modified: 2016-10-28
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
0
Comment
Question by:gudii9
  • 5
  • 3
9 Comments
 
LVL 7

Assisted Solution

by:Thomas Wheeler
Thomas Wheeler earned 250 total points
ID: 41854397
it's saying that the ping utility that is being called uses -n not -c for the count
0
 
LVL 37

Accepted Solution

by:
Gerwin Jansen, EE MVE earned 250 total points
ID: 41854427
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
 
LVL 7

Author Comment

by:gudii9
ID: 41854530
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
DevOps Toolchain Recommendations

Read this Gartner Research Note and discover how your IT organization can automate and optimize DevOps processes using a toolchain architecture.

 
LVL 7

Author Comment

by:gudii9
ID: 41854531
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
 
LVL 37

Expert Comment

by:Gerwin Jansen, EE MVE
ID: 41854562
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
 
LVL 37

Expert Comment

by:Gerwin Jansen, EE MVE
ID: 41854565
So your program in Eclipse is working, your internet connection issue is not what we can solve here for you.
0
 
LVL 7

Author Comment

by:gudii9
ID: 41857439
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
 
LVL 7

Author Comment

by:gudii9
ID: 41857447
one other thing i did different is run as administrator
0
 
LVL 7

Author Comment

by:gudii9
ID: 41857448
any link on step by step examples of unix on cygwin examples starting from hello world to more complex loops etc
0

Featured Post

Efficient way to get backups off site to Azure

This user guide provides instructions on how to deploy and configure both a StoneFly Scale Out NAS Enterprise Cloud Drive virtual machine and Veeam Cloud Connect in the Microsoft Azure Cloud.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Java JRE greater than 1.6 5 62
ipconfig not working on windows 10 bash shell; what other commands are missing. 17 169
factorial example 4 39
null output 3 25
Attention: This article will no longer be maintained. If you have any questions, please feel free to mail me. jgh@FreeBSD.org Please see http://www.freebsd.org/doc/en_US.ISO8859-1/articles/freebsd-update-server/ for the updated article. It is avail…
Using libpcap/Jpcap to capture and send packets on Solaris version (10/11) Library used: 1.      Libpcap (http://www.tcpdump.org) Version 1.2 2.      Jpcap(http://netresearch.ics.uci.edu/kfujii/Jpcap/doc/index.html) Version 0.6 Prerequisite: 1.      GCC …
Viewers will learn about if statements in Java and their use The if statement: The condition required to create an if statement: Variations of if statements: An example using if statements:
This theoretical tutorial explains exceptions, reasons for exceptions, different categories of exception and exception hierarchy.

770 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question