Fælles Java projekt opportunity #2

Du kan i dette forum stille og svare på spørgsmål vedrørende Java programmering på alle typer platforme.
Besvar
cristian
Moderator
Moderator
Indlæg:882
Tilmeldt:26. sep 2011, 21:31
Kontakt:
Fælles Java projekt opportunity #2

Indlæg af cristian » 18. jan 2015, 18:59

Til alle interesserede!
Begynder, øvede og mesteren i hjørnet.

I øjeblikket arbejder jeg på et lille hygge projekt om aftenen kaldet JavaHelper, som jeg gerne ville give andre muligheden for at være med på hvis det frister nogle.
Dels fordi at det er nemmere at bygge en kollektiv viden, frem for en individuel viden. Og så er det SJOVERE! :D

Projektet
Er et opslagsværk program i udvikling som jeg laver i takt med jeg selv bliver klogere på Java, hvor jeg samler min viden, guldkorn, tips og tricks.
Udsnit af konsol menuen
1: What is Java
2: Data types
3: Quit
1
1: Java Bytecode
2: Java Virtual Machine
3: Platform independency
4:
9: Back
1
Java is a interpret language that works by taking source code and compile it to byte code, byte code is intermediate code that lies between the source code and machine code. The byte code is feed to the JVM as a highly optimized set of instructions that’s executed as machine code on the host system.
1: Java Bytecode
2: Java Virtual Machine
3: Platform independency
4:
9: Back
Projektet består i øjeblikket af 4 pakker og 1 data fil.

I brug
I øjeblikket Ikke i brug
  • dk.danicait.database
    • ConnectionBuilder.java
    • ConnectionManager.java
    • ConnectionTesting.java <-- Her jeg arbejder i øjeblikket
  • dk.danicait.jbcrypt
    • BCrypt.java
  • dk.danicait.main
    • Main.java
  • dk.danicait.text
  • database.properties <- Datafil
I øjeblikket arbejder jeg på at lave en database forbindelse test klasse, til hvis en connection fejler så kan man bruge den til at finde ud af hvorfor.
Port fejl, gateway fejl, VPN fejl / andre problemer jeg kan komme i tanke om. Klassen ser på nuværende tidspunkt 18-01-2015 således ud (se nedenfor).

ConnectionTesting.java

Kode: Vælg alt

package dk.danicait.database;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.ArrayList;

public class ConnectionTesting {
	
	public void communicationExceptionTesting() throws UnknownHostException, IOException {
		
		System.out.println("communicationExceptionTesting() sending ICMP echo request port 7. 3 seconds timeout");
		boolean status = serverConnectionStatus("192.168.1.159");
		
		status = false;//slet igen
		
		if(!status) {
			System.out.println("communicationExceptionTesting() ICMP echo request failed");
			
			System.out.println("communicationExceptionTesting() trying to discover source of failure");
			
//			#################################
//			discover your own gateway section
//			#################################
//			
			ArrayList<String> command = new ArrayList<String>();
			
			final String os = System.getProperty("os.name");
			if(os.contains("Windows") || os.contains("windows")) {
				command.add("cmd.exe");
				command.add("/C");
				command.add("ipconfig |findstr \"Default Gateway\" |findstr \"[0-9]$\"");
			} else {
				command.add("/bin/bash");
				command.add("-c");
				command.add("/sbin/ifconfig |/bin/grep -e \"inet addr\" |/usr/bin/awk '{print $2}' |/bin/sed 's/^.\\{5\\}//g' |/bin/grep -e ^192 -e ^172 -e ^10");
			}
			
			ProcessBuilder pb = new ProcessBuilder(command);
			System.out.println("pb start");//Slet igen
			final Process process = pb.start();
			
			BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream()));
		    
//		    String builder for at gribe strengen og derefter lave en substring for at udtrække default gateway
//			skal også virke hvis flere default gateways eksisterer
			
		    String line;
		    while ((line = br.readLine()) != null) {
		      System.out.println(line);
		    }
		    System.out.println("pb done");//slet igen
			
		    System.exit(1);//slet igen
		}
	    
		//If default gateway works, discover an online service with high up time
		
	}

	private boolean serverConnectionStatus(String host) throws IOException, UnknownHostException {
//		Server testing
		int timeout = 3000;
		
		boolean status = InetAddress.getByName(host).isReachable(timeout);
		return status;
	}
}


Hvis i er interesseret så smid en svar her og gik jer selv til kende.
Smid også jeres skype-id, mit eget er vikingen-der-sover
Hvis vi skulle blive for mange til skype, så opretter jeg en ventrilo server til os.

Hvis nogle melder sig på banen, så opretter jeg en Git server og ligger projektet i et lukket projekt kun for nemprogrammering.dk.
Så det ville også være en god mulighed for at lære Git, også for mig selv da det er et solidt emne.

Vh
Cristian

cristian
Moderator
Moderator
Indlæg:882
Tilmeldt:26. sep 2011, 21:31
Kontakt:

Re: Fælles Java projekt opportunity #2

Indlæg af cristian » 31. jan 2015, 00:25

Har arbejdet på en måde at eksekvere eksterne kommandoer på fra Java af.
Nogle der har noget godt input til hvordan i ville gøre?

Kode: Vælg alt

public class route {
	
	public String getOS() {
		return System.getProperty("os.name");
	}
	
	/**
	 * @param execute
	 * @param os
	 * @return BufferReader
	 * @throws IOException
	 */
	public BufferedReader commandExecutioner(String execute, String os) throws IOException {
		ArrayList<String> command = new ArrayList<String>();
		
		if(os.contains("Windows") || os.contains("windows")) {
			command.add(0, "cmd.exe");
			command.add(1, "/C");
			command.add(2, execute);
		} else {
			command.add(0, "/bin/bash");
			command.add(1, "-c");
			command.add(2, execute);
		}
		
		ProcessBuilder pb = new ProcessBuilder(command);
		final Process process = pb.start();
		
		BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream()));
		
		return br;
	}
}

Kode: Vælg alt

BufferedReader br = r.commandExecutioner("route PRINT", r.getOS());

Besvar