Archief - JAVA beginnersprobleem

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Satkan

Legacy Member
Hey mensen,

Sinds kort ben ik begonnen met het boek :
A brain friendly guide : Head first Java.
Nu begon ik met de eerste oefening: BeerSong.

Na heel de code te typen, sloeg ik alles op in een .java bestand.
Hierna typte ik in de "cmd" javac BeerSong,
alles werkte... ik kreeg een .CLASS file.

Daarna typte ik dan Java BeerSong.java
Toen kwam de fout : ... Could not find or load main class : ...
Na JAVA_HOME en CLASSPATH in te stellen in system vars,
kwam deze fout er nog eens op.
Toen probeerde ik nog eens, en toen launchte het.
Na de "cmd" te sluiten en opnieuw op te starten, lukte het niet meer.
En dus bleef diezelfde fout er telkens opnieuw opkomen.

Gezocht naar een correcte manier om CLASSPATH in te stellen,
zelfs de JDK geherinstaleerd.
Na die herinstalatie lukt het zelfs niet meer om van .java een .class bestand te bekomen.

error : Class names, 'BeerSong', are only accepted if annotation processing is explicitly requested.
1 error


In Eclipse voer ik dezelfde code in, en duw ik op run...
hier lukt alles zonder probleem, en krijg ik het gewenste resultaat.


Code (bewust op 1 lijn gezet, zodat het "makkelijk" leesbaar is.):
edit*

public class BeerSong {
public static void main (String[] args) {
int beerNum = 99;
String word = "bottles";

while (beerNum > 0) {

if (beerNum == 1) {
word = "bottle";
}

System.out.println(beerNum + " " + word + " of beer on the wall");
System.out.println(beerNum + " " + word + " of beer.");
System.out.println("Take one down.");
System.out.println("Pass it around");
beerNum = beerNum - 1;

if (beerNum > 0) {
System.out.println(beerNum + " " + word + " of beer on the wall");
} else {
System.out.println("No more bottles of beer on the wall");
}
}
}
}

Resultaat :

99 bottles of beer on the wall
99 bottles of beer.
Take one down.
Pass it around
98 bottles of beer on the wall
98 bottles of beer on the wall
...
Pass it around
No more bottles of beer on the wall


Iemand enige inbreng?

Cyberkef

Legacy Member
Men java is wat roestig, maar probeer es "public class Beersong {" ipv "public class a {", en daarna "java Beersong" (of "java Beersong.class").

Satkan

Legacy Member
Ah juist, ik had al eens om uit te proberen BeerSong naar a veranderd.
Maakt geen verschil, want ik heb het met beide al geprobeerd.

Ik heb nog eens PATH, CLASSPATH en JAVA_HOME opnieuw ingetypt.

C:\Program Files\Java\jdk\bin
C:\Program Files\Java\jdk\lib
C:\Program Files\Java\jdk\

respectievelijk.
(De 1.7.0. etc. heb ik gedelete uit de naam van de jdk mapnaam.)


Ik snap zeker niet waarom het javac commando niet meer werkt...
voor de herinstalatie deed die het wel.

Dus ik zit vast aan
"error : Class names, 'BeerSong', are only accepted if annotation processing is explicitly requested.
1 error"

Ik ben al heel de tijd aan het zoeken hoe ik de
"Error could not find or load main class" error
wegkrijg, maar blijkbaar komen er alleen maar problemen bij.

Toch bedankt voor de reactie Cyberkef!

forloRn_

Legacy Member
Javac werkt wel want het geeft output.

Doe gewoon:

javac BeerSong.java
java BeerSong

Hoofdletters zijn belangrijk.

Chaos-Energy

Legacy Member
forloRn_ zei:
Javac werkt wel want het geeft output.

Doe gewoon:

javac BeerSong.java
java BeerSong

Hoofdletters zijn belangrijk.

Klopt maar zijn fout is dat hij zijn .java bestand probeert uit te voeren ipv zijn .class.

Dus ipv java BeerSong.java moet het java BeerSong zijn.

Satkan

Legacy Member
Nee, ik had in het begin javac gebruikt op BeerSong.java,
wat dus BeerSong.class maakte...
daarna java BeerSong ingevoerd,
en dan kwam er altijd een andere foutmelding op,
maar nu kan ik niet eens meer
het .java bestand omzetten naar een .class.

RaZoR be

Legacy Member
kunt ge hier anders es de volledige output plakken.

dus wat em zegt als ge typt

javac BeerSong.java

en als ge typt na het eerste succesvol is.
java BeerSong

Satkan

Legacy Member
Sorry voor de trage reacties,
ik ga nog eens proberen de jdk te herinstaleren vanaf 0.
Aangezien de code werkt in Eclipse ligt het waarschijnlijk wel aan dat.

Als ik niets vooruit raak zal ik de output hier zetten.

NeverwinterX

Legacy Member
Satkan zei:
Sorry voor de trage reacties,
ik ga nog eens proberen de jdk te herinstaleren vanaf 0.
Aangezien de code werkt in Eclipse ligt het waarschijnlijk wel aan dat.

Als ik niets vooruit raak zal ik de output hier zetten.

Wat is dat voor averechtse redenering. In eclipse werkt het, dus het ligt niet aan de installatie. Je doet waarschijnlijk iets mis of je hebt die environment variabelen verknoeid.

Satkan

Legacy Member
Ok mensen, het probleem is opgelost.
Het lag wel degelijk aan de JDK die foutief was ingesteld.

Ik heb dus nogmaals de JDK geherinstaleerd,
daarna had ik alles uit enviroment variables verwijderd (Path, classpath...).
Dan simpelweg eens 2 video's van thenewboston bekeken.
Het is handig als checklist,
en nu werkt alles zoals het moet.

Voor mensen die later met een soortgelijk probleem zitten :

Java Programming Tutorial - 1 - Installing the JDK - YouTube
Java Programming Tutorial - 2 - Running a Java Program - YouTube

Bedankt voor de reacties iedereen!

Satkan

Legacy Member
NeverwinterX zei:
Wat is dat voor averechtse redenering. In eclipse werkt het, dus het ligt niet aan de installatie. Je doet waarschijnlijk iets mis of je hebt die environment variabelen verknoeid.

Ik had ze blijkbaar inderdaad verknoeid.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan