Ga naar inhoud

.bat bestand uitvoeren in java


bergkid

Aanbevolen berichten

hey,

ik probeer gotya.bat uit te voeren in java, maar dit wil niet lukken tenminste ik krijg niet een cmd window open waarin staat "test".

dit is wat ik nu heb voor het schrijven van de .bat:

public void schrijfbat() throws IOException    {        String[] gotya;        gotya = new String[5];        gotya[0] = "test haha test";        gotya[1] = "ECHO OFF";        gotya[2] = "ECHO test";        gotya[3] = "ECHO TEST2";        gotya[4] = "PAUSE";

    try{  // Create file        FileWriter fstream = new FileWriter("gotya.bat");        BufferedWriter out = new BufferedWriter(fstream);        out.write(gotya[1]);        out.newLine();        out.write(gotya[2]);out.newLine();        out.write(gotya[3]);out.newLine();        out.write(gotya[4]);out.newLine();        //out.write(gotya[0]);          //Close the output stream        out.close();  }catch (Exception e){//Catch exception if any  System.err.println("Error: " + e.getMessage());  }    } 

en dit lijkt wel te werken want ik kan gotya.bat terug vinden en als ik op bewerken klik krijg ik hem met deze inhoud en als ik hem run dan doet hij het ook, dus hier ligt het denk ik niet aan.

en dit is de regel die ik gebruik om hem uit te voeren:

 Runtime.getRuntime().exec("cmd /c start gotya.bat");

als ik handmatig in cmd "start gotya.bat" invoer dan zegt hij dat de naam gotya.bat niet kan vinden en vraagt hij of ik hem wel goed heb ingevoerd.

heeft iemand een idee waar de fout zit?

Link naar reactie
Delen op andere sites

Ik ken wel niets van php maar het volgende is algemene programmeerlogica en dus taalonafhankelijk.

In de systeemvariabelen staat Path= met een aantal paden achter.

Als je een commando ingeeft dat in een van deze paden staat, zal het systeem dit vinden zonder dat je het pad expliciet opgeeft.

Staat je .bat niet is een van deze paden, zal het systeem gaan kijken in de actuele map en als het daar niet gevonden wordt, krijg je dus de melding dat het bestand niet gevonden is of dat het commando niet als zodanig wordt herkend.

Probeer eens of het lukt als je hier Runtime.getRuntime().exec("cmd /c start gotya.bat"); het volledige pad van gotya.bat opgeeft.

Het best is dat je ook bij het aanmaken en wegschrijven van gotya.bat een pad opgeeft zodat je zeker weet waar het bestand staat en dan kan je dit pad ook gebruiken om de uitvoering te starten.

Link naar reactie
Delen op andere sites

het is geen php code, maar omdat er geen knop was voor java code en ik die van php zag heb ik die gebruikt.

ik kan het volledig pad nu wel op geven maar dit gaat niet werken want iemand anders moet het zo op zijn pc kunnen zetten en dan moet die het doen.

ik heb het al opgelost al weet ik niet precies wat de fout was. toen ik ergens anders mee bezig was en de if waar hij instond iets veranderde wou hij het wel doen. ik vermoed dat het uitvoeren van het andere te lang duurde, maar doordat ik hem uit de if haalde en die specifieker maakte (dat ze niett tegelijk werden uitgevoerd) deed hij het wel.

maar nu moet ik er nog voor zorgen dat hij op een andere locatie word neergezet, dus het programma staat in C\...\appdata\ en dan moet het bestand in bijvoorbeeld c\....\mydocuments\ staan. alleen weet ik dus niet zeker waar het programma komt te staan en ik weet niet zeker waar mydocuments zit aan gezien hij of zij bijvoorbeeld een dualboot heeft.

Link naar reactie
Delen op andere sites

Gast
Dit topic is nu gesloten voor nieuwe reacties.
×
×
  • Nieuwe aanmaken...

Belangrijke informatie

We hebben cookies geplaatst op je toestel om deze website voor jou beter te kunnen maken. Je kunt de cookie instellingen aanpassen, anders gaan we er van uit dat het goed is om verder te gaan.