Permalänk
Medlem

Nybörjar fråga i Java!

Här är mitt Hello world program:

//A Very Simple Example
class ExampleProgram {
public static void main(String[] args){
System.out.println("I'm a Simple Program");
}
}

Jag har kompilerat det med Javac och jag kan köra det i cmd såhär:

"Java ExampleProgram" så får jag fram texten.

Men av vad jag har förstått ska det gå att köra min class fil i den vanliga Java.exen så skulle jag få fram en dialogrutan med min text. Men såfort jag gör det får jag bara 1 sekunds blink ifrån cmd som säger att huvudklassen inte hittas eller något.

Gör jag något fel?

Visa signatur

Citera för svar

Permalänk
Medlem

Brukar sällan (läs aldrig) kompilera min kod via cmd, men skulle tro att det är för att du aldrig har specificerat vart din main metod ligger.
Har inte direkt tid att gå igenom det själv men här har du en (ser ut att vara iafl) vettig länk som förhoppningsvis hjälper dig med det du vill göra http://www.javacoffeebreak.com/java101/java101.html.

Skulle rekommendera Eclipse för vidare utveckling utav Java/Android.

EDIT: Förstår inte riktigt vad du menar med att köra den i den vanliga Java.exen, det är ju precis vad du gör när du skriver "Java ExampleClass"

Visa signatur

NZXT Phantom 410 (Vit) | i5 3570k@4.2GHz | Asus P8Z77-V LE | Corsair Vengeance LP 1600MHz 16GB | Gigabyte GTX 670 Windforce OC @1GHz | Seagate 600 480GB | Corsair HX750 | Cooler Master 212 Evo

Permalänk
Avstängd
Skrivet av Baxtex:

Här är mitt Hello world program:

//A Very Simple Example
class ExampleProgram {
public static void main(String[] args){
System.out.println("I'm a Simple Program");
}
}

Jag har kompilerat det med Javac och jag kan köra det i cmd såhär:

"Java ExampleProgram" så får jag fram texten.

Men av vad jag har förstått ska det gå att köra min class fil i den vanliga Java.exen så skulle jag få fram en dialogrutan med min text. Men såfort jag gör det får jag bara 1 sekunds blink ifrån cmd som säger att huvudklassen inte hittas eller något.

Gör jag något fel?

När du kör ditt program med Java [Ditt programnamn] så använder du ju Java.exe. Du behöver inte skriva ut .exe för att Java.exe ligger i en katalog som finns i PATH. När du kör det direkt med programmet så körs ditt program men eftersom det bara skriver ut texten och sen avslutas så stängs fönstret snabbt. Ditt program kan inte hamna i en dialogruta då det är ett konsollprogram (alltså körs i en konsoll som cmd). För att få fram en dialogruta måste du använda något bibliotek som har sådana (eller skriva egna men det är nog över både din och min nivå), till exempel Swing. Se här: http://docs.oracle.com/javase/tutorial/uiswing/components/dia...

Permalänk
Medlem

Jo alltså allt det som står där vet jag redan, vet inte om det är jag som har fattat fel?

Jag får ju fram: "I'm a Simple program" när jag skriver "java ExampleProgram" i cmd. Men jag trodde jag skulle kunna dubbeklicka på classfilen och få fram det, men jag har kanske fattat fel? :s

Visa signatur

Citera för svar

Permalänk
Medlem

Det är precis som föregående talare säger att konsolfönstret stängs när din applikation är kvar.

Något som du kan göra är att lägga följande kod i slutet av ditt program:

System.out.println("Tryck på enter för att forsätta..."); Scanner kbd = new Scanner(System.in); kbd.nextLine();

Då kommer applikationen inte att avsluta innan dess att du har tryckt på enter vilket gör att fönstret kommer att behållas öppet.

Permalänk
Medlem
Skrivet av snajk:

När du kör ditt program med Java [Ditt programnamn] så använder du ju Java.exe. Du behöver inte skriva ut .exe för att Java.exe ligger i en katalog som finns i PATH. När du kör det direkt med programmet så körs ditt program men eftersom det bara skriver ut texten och sen avslutas så stängs fönstret snabbt. Ditt program kan inte hamna i en dialogruta då det är ett konsollprogram (alltså körs i en konsoll som cmd). För att få fram en dialogruta måste du använda något bibliotek som har sådana (eller skriva egna men det är nog över både din och min nivå), till exempel Swing. Se här: http://docs.oracle.com/javase/tutorial/uiswing/components/dia...

Ja men då förstår jag! Tack, då var jag ju rätt på det!

Visa signatur

Citera för svar

Permalänk
Medlem
Skrivet av Baxtex:

Jo alltså allt det som står där vet jag redan, vet inte om det är jag som har fattat fel?

Jag får ju fram: "I'm a Simple program" när jag skriver "java ExampleProgram" i cmd. Men jag trodde jag skulle kunna dubbeklicka på classfilen och få fram det, men jag har kanske fattat fel? :s

För att starta en javaapplikation genom dubbelklick så använder man ofta körbara (runnable) JAR-filer. Det finns en del guider om detta om du Googlar på det. Exempelvis: http://www.mkyong.com/java/how-to-make-an-executable-jar-file...

Permalänk
Medlem
Skrivet av Nallepigan:

Det är precis som föregående talare säger att konsolfönstret stängs när din applikation är kvar.

Något som du kan göra är att lägga följande kod i slutet av ditt program:

System.out.println("Tryck på enter för att forsätta..."); Scanner kbd = new Scanner(System.in); kbd.nextLine();

Då kommer applikationen inte att avsluta innan dess att du har tryckt på enter vilket gör att fönstret kommer att behållas öppet.

Fast då printar den inte ut texten ändå. Här är en print screen från 1 sekunds fönstret. http://www.ladda-upp.se/image.php?id=65233&size=full

Visa signatur

Citera för svar

Permalänk
Medlem
Skrivet av Baxtex:

Fast då printar den inte ut texten ändå. Här är en print screen från 1 sekunds fönstret. http://www.ladda-upp.se/image.php?id=65233&size=full

Följande borde fungera (inte testat själv så det kan hända att det är något syntaxfel):

// A Very Simple Example public class ExampleProgram { public static void main(String[] args){ System.out.println("I'm a Simple Program"); System.out.println("Tryck på enter för att forsätta..."); Scanner kbd = new Scanner(System.in); kbd.nextLine(); } }

Edit: Det ser ut som om det är något galet när du startar filen, hur är det du försöker starta den egentligen? Jag är inte säker på att jag förstår vad du försöker göra..

Permalänk
Medlem

Det du ska göra är att ha en fil som heter samma som klassen, i detta fall ExampleProgram.java.
Sedan ska du kompilera javafilen genom javac:

javac ExampleProgram.java

Nu ska en ExampleProgram.class ha skapats i samma katalog.
För att köra denna så skriver du:

java ExampleProgram

Edit - Följande kod fungerar för mig enligt ovanstående förfarande:

import java.util.Scanner; // A Very Simple Example public class ExampleProgram { public static void main(String[] args){ System.out.println("I'm a Simple Program"); System.out.println("Tryck på enter för att forsätta..."); Scanner kbd = new Scanner(System.in); kbd.nextLine(); } }

Permalänk
Medlem

Ja alltså jag får ju ut texten om jag köra "java ExampleProgram".

Men om jag dubbelklickar på själva filen/ikonen på skrivbordet är det en sekunds fönstret som dyker upp.

Visa signatur

Citera för svar

Permalänk
Medlem
Skrivet av Baxtex:

Ja alltså jag får ju ut texten om jag köra "java ExampleProgram".

Men om jag dubbelklickar på själva filen/ikonen på skrivbordet är det en sekunds fönstret som dyker upp.

Det går inte att köra en klassfil på det viset, som standard. Här finns en lösning du kan testa: http://stackoverflow.com/questions/2232204/associate-java-cla...

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Medlem
Skrivet av Baxtex:

Ja alltså jag får ju ut texten om jag köra "java ExampleProgram".

Men om jag dubbelklickar på själva filen/ikonen på skrivbordet är det en sekunds fönstret som dyker upp.

De flesta här har missuppfattat ditt problem.

Om du vill kunna dubbelklicka för att starta programmet så har du i princip 2 alternativ:

  1. Skapa en körbar jar-fil med ditt program och dubbelklicka på den för att köra.

  2. Skapa en bat-fil som i sin tur kör "java ExampleProgram".

Att generera en jar-fil är det "korrekta" sättet. Den här guiden verkar bra: http://www.mkyong.com/java/how-to-make-an-executable-jar-file...
Det andra alternativet är lite av ett hack och inget jag rekommenderar.

Permalänk
Medlem

Aaa, ja men dåså, då gjorde jag inget fel.

Visa signatur

Citera för svar

Permalänk
Medlem

Men nu har jag ett annat problem. Har fått göra såhär för att få fram resultat:

Gå in i Bin folder i Java jdk:n för att köra "Javac <sökväg> ExampleProgram.Java"

Sedan ändra directory till desktopen där jag nu har Class filen och köra "Java ExampleProgram"

Jag har förstått det så att jag på något sätt kan sätta soucepathen och classpathen, så det bara är att skriva, Javac xxx och Java xxx i framtiden.

Hur gör jag detta?

Visa signatur

Citera för svar

Permalänk
Medlem
Skrivet av Baxtex:

Men nu har jag ett annat problem. Har fått göra såhär för att få fram resultat:

Gå in i Bin folder i Java jdk:n för att köra "Javac <sökväg> ExampleProgram.Java"

Sedan ändra directory till desktopen där jag nu har Class filen och köra "Java ExampleProgram"

Jag har förstått det så att jag på något sätt kan sätta soucepathen och classpathen, så det bara är att skriva, Javac xxx och Java xxx i framtiden.

Hur gör jag detta?

http://geekswithblogs.net/renso/archive/2009/10/21/how-to-set...