Gå til innhold

Skrive kommandoer til DOS


Anbefalte innlegg

Hei. Jeg har en tilsvarende topic på norskwebforum også, men ingen kom fra til riktig løsning, så jeg spør her i tillegg. Det jeg vil fram til er hvordan man kan skrive kommandoer til DOS. F.eks. javac kommandoen og cd c:\Java osv. Noen som vet hvordan dette gjøres i Java?

 

Takker på forhånd!

Lenke til kommentar
Videoannonse
Annonse

Mener du å kalle kommandoer fra javaprogrammet?

Vet ikke helt hvordan det er i windows, men for å kalle kommandoer i linux kan man bruke

Runtime.getRuntime().exec(new String[] {"cd java"})

 

 

 

Eller ønsker du å starte ting fra windows, som å lage en bat-fil?

cd c:\Java
javac programmetmitt.java
java programmetmitt

Lagre som ettelrannet.bat

 

Edit: sjekka hvordan man kunne gjøre det i win:

Link: http://www.rgagnon.com/javadetails/java-0014.html

Endret av bragoon
Lenke til kommentar

Får bare opp at det skar seg og en masse meldinger som jeg ikke ble så klok av. Prøvde også å skrive javac Test.java osv., men fikk samme meldingene.

skar seg..

java.io.IOException: CreateProcess: cd error=2

        at java.lang.ProcessImpl.create(Native Method)

        at java.lang.ProcessImpl.<init>(ProcessImpl.java:81)

        at java.lang.ProcessImpl.start(ProcessImpl.java:30)

        at java.lang.ProcessBuilder.start(ProcessBuilder.java:451)

        at java.lang.Runtime.exec(Runtime.java:591)

        at java.lang.Runtime.exec(Runtime.java:464)

        at Test.main(Test.java:9)

Press any key to continue...

Lenke til kommentar


    try {
     
 	Process p = Runtime.getRuntime().exec("\"c:/program files/TextPad 4/TextPad.exe\"");
 	p.waitFor();
    } catch (Exception e) {
 	// TODO Auto-generated catch block
 	e.printStackTrace();
 }

 

Hvis man skulle passe argumenter til programet (javac mittjavascript.java)

kunne man visst gjøre slik:

 

String[] cmd = { "myProgram.exe", "-o=This is an option" };
Runtime.getRuntime().exec(cmd);

Sakset fra guiden linket til lengre opp

Lenke til kommentar

Hmmm... prøvde dette, men funka ikke (fikk masse meldinger da også):

import java.io.*;

public class Test
{

public static void main(String[] args)
{
 try {  
     String[] cmd = { "javac c:/Test.java"};
 	Runtime.getRuntime().exec(cmd);
  
   } catch (IOException e) {
     System.out.println("skar seg..");
     e.printStackTrace();
   }
}
}

Hvis jeg bare skrev javac og ikke noe annet skjedde det ingenting. For informasjonens skyld så prøver jeg å lage en java-kompilerer som automatisk kjører javac kommandoen.

Lenke til kommentar

Et par eksempler til som funker utmerket:

 

package net.sourceforge.givtv.backend;

import java.io.*;

/**Methods to manage a mplayer window
* 
* @author Kyrre Ness Sjøbæk
*
*/
public class MplayerInterface {

//private final	String	mplayercommand = "mplayer";
private  	Process	mplayer;
private  	BufferedWriter mplayerCommander;

public void startMplayer (String playfile) {
 System.out.println("Starting mplayer...");
 try {
 	//TODO: Wanted: something to stop mplayer from using keyboard controls in the mplayer window
 	mplayer = Runtime.getRuntime().exec("mplayer -quiet -slave " + playfile);
 	
 	/*
 	BufferedReader stdInput = new BufferedReader(new InputStreamReader(mplayer.getInputStream()));
 	//Capture the output
 	boolean read_continue = true;
 	while (read_continue) {
   String nextline = stdInput.readLine();
   if (nextline != null) {
   	System.out.println(nextline);
   }
   else read_continue = false;
 	} 
 	stdInput.close();
 	*/
 	
 	mplayerCommander = new BufferedWriter(new OutputStreamWriter(mplayer.getOutputStream()));
 	
 } catch (IOException e) {
 	// TODO Auto-generated catch block
 	e.printStackTrace();
 }
 
}

public void stopMplayer () {
 System.out.println("Stopping mplayer...");
 try {
 	mplayerCommander.write("quit\n");
 	mplayerCommander.close(); //Will give a backtrace if q has been pressed on mplayer.
 } catch (IOException e) {
 	// TODO Auto-generated catch block
 	e.printStackTrace();
 }
 
 //mplayer.waitFor();
 
}
}

(den utkommenterte koden henter og skriver ut hva enn mplayer måtte finne på å dumpe i konsollet)

 

 

/**Run ivtv-tune with the given arguments.
 * --device (videodevice) is always given
 * 
 * @param args The arguments that you want to be passed to ivtvtune
 * @return A list of every line of standard output from ivtvtune 
 */
private String[] ivtvtune_run (String args) {
 try {
 	ArrayList returnlist = new ArrayList();
 	
 	Process ivtv_tune = Runtime.getRuntime().exec("ivtv-tune --device=" + videodevice + " " + args);
 	BufferedReader stdInput = new BufferedReader(new InputStreamReader(ivtv_tune.getInputStream()));
 	

 	ivtv_tune.waitFor();

 	//Capture the output
 	boolean read_continue = true;
 	while (read_continue) {
   String nextline = stdInput.readLine();
   if (nextline != null) {
   	returnlist.add(nextline);
   }
   else read_continue = false;
 	}
 	stdInput.close();
 	
 	//Process the output for return
 	
 	String[] returnstring = new String[returnlist.size()];
 	for (int i = 0; i < returnlist.size(); i++) {
   returnstring[i] = (String) returnlist.get(i);
 	}
 	
 	return returnstring;
 }
 catch (IOException error) {
 	error.printStackTrace();
 	System.exit(-1);
 	return null;
 } catch (InterruptedException e) {
 	// TODO Auto-generated catch block
 	e.printStackTrace();
 	System.exit(-1);
 	return null;
 }

Lenke til kommentar

Jeg fikk denne koden til å fungere! Den kompilerer riktig, men det er et problem , og det er at hvis noe er feil med kodene i filen jeg kompilerer skriver den ikke ut noen feilmelding. Noen som kanskje vet noe om dette?

import java.io.*;

public class Test2
{
public static void main(String[] args)
{
 try {
 	Process p = Runtime.getRuntime().exec("javac c:/Test.java");
 	BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream()));
 } catch(Exception e) {
 	System.out.println("Noe er galt med koden!");
 }
 	
 
}
}

Endret av kjey
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...