Wat is hier verkeerd aan

Status
Niet open voor verdere reacties.

gast0450

Gebruiker
Lid geworden
8 jul 2006
Berichten
188
Hoi allemaal,

Ik heb hier een klein scriptje maar als ik hem met ant wil compilen krijg ik

Reached end of file while parsing.

Weet iemand waar de fout zit?

Code:
public class L1ServerTime extends TimerTask {
private static final Timer _timer = new Timer();
private L1PcInstance _pc;

public L1ServerTime(L1PcInstance pc) {
_pc = pc;
}

@Override
public void run() {
try {
if (_pc.getNetConnection() == null) {
cancel();
return;
}

int serverTime = L1ServerTime.getInstance().getGameTime()
.getSeconds();
if (serverTime % 300 == 0) {
L1World.getallplayers();
_pc.createitem(40308, 10);
}
} catch (Exception e) {

}
}
 
"Reached end of file while parsing" betekent dat je niet genoeg accolades hebt gebruikt!

Voorbeeld:

Code:
public class voorbeeld
{
private String stoel = "hallo";

public voorbeeld()
{
    stoel = "ik ben er al";
}

// hier zou nog een accolade moeten staan!

Je ziet duidelijk dat er op het einde nog een accolade hoort en die ben jij dus ook vergeten. ;-)

zo zal het wel werken:

Code:
public class L1ServerTime extends TimerTask {
private static final Timer _timer = new Timer();
private L1PcInstance _pc;

public L1ServerTime(L1PcInstance pc) {
_pc = pc;
}

@Override
public void run() {
try {
if (_pc.getNetConnection() == null) {
cancel();
return;
}

int serverTime = L1ServerTime.getInstance().getGameTime()
.getSeconds();
if (serverTime % 300 == 0) {
L1World.getallplayers();
_pc.createitem(40308, 10);
} [COLOR="DeepSkyBlue"]// hier sluit je de try [/COLOR]
} catch (Exception e) {

}[COLOR="DeepSkyBlue"] // hier sluit je de catch[/COLOR]
} [COLOR="DeepSkyBlue"]// hier sluit je de methode[/COLOR]
[COLOR="Red"][B]} // hier sluit je de klasse[/B][/COLOR]
 
Laatst bewerkt:
Vreemd, ik dacht dat ik had eerder al had geprobeerd maar toen werkte het niet.

Die fout is er nu uit maar een volgende fout is opgetreden.

Ik krijg nu de melding regel 11: 'try' without 'catch' or 'finally' try { ^

1 error.

Daar ook nog een oplossing voor?

Alvast bedankt
 
Code:
import java.util.TimerTask;
import java.util.Timer;



public class L1ServerTime extends TimerTask {
private static final Timer _timer = new Timer();


public L1ServerTime() {
//_pc = pc;
}

@Override
public void run() {
try {
if (_pc.getNetConnection() == null) {
cancel();
}

int serverTime = L1ServerTime.getInstance().getGameTime();
getSeconds();
if (serverTime % 300 == 0) {
L1World.getallplayers();
_pc.createitem(40308, 10);
}
} catch (Exception e) {


} // hier sluit je de catch
} // hier sluit je de methode
} // hier sluit je de klasse

Dit werkt normaal... Zoek zelf maar het verschil met jouw code ^^, heb wel enkele dingen weggelaten omdat ik anders niet kon testen
 
Laatst bewerkt:
ik zie dat je 2x import hebt gebruikt helemaal bovenaan.

Maar nu werkt het helemaal niet meer, krijg nu iets van 7 foutmeldingen...
 
Welke foutmeldingen krijg je:)? Het hoeft niet perse te betekenen dat meer foutmeldingen, slechter zijn. Het kan zijn dat als je 1 grote fout erin hebt en je die oplost andere kleinere foutjes zich laten zien. (in het error log gezet worden).
 
Laatst bewerkt:
Het is erg logisch dat je foutmeldingen krijgt aangezien ik sommige stukken van je code als commentaar heb gezet omdat ik die andere klassen niet tot mijn beschikking heb! Voeg die dingen er weer aan toe (vergelijk met je eigen voorbeeld) en dan zou het normaal moeten werken!
 
aangepast maar nu nog meer fouten.

compile:
[mkdir] Created dir: D:\LiveM6\build
[javac] Compiling 612 source files to D:\LiveM6\build
[javac] D:\LiveM6\src\l1j\server\server\Timer.java:7: class L1ServerTime is
public, should be declared in a file named L1ServerTime.java
[javac] public class L1ServerTime extends TimerTask {
[javac] ^
[javac] D:\LiveM6\src\l1j\server\server\Timer.java:23: cannot find symbol
[javac] symbol : method getInstance()
[javac] location: class L1ServerTime
[javac] int serverTime = L1ServerTime.getInstance().getGameTime();
[javac] ^
[javac] D:\LiveM6\src\l1j\server\server\Timer.java:24: cannot find symbol
[javac] symbol : method getSeconds()
[javac] location: class L1ServerTime
[javac] getSeconds();
[javac] ^
[javac] D:\LiveM6\src\l1j\server\server\Timer.java:26: cannot find symbol
[javac] symbol : variable L1World
[javac] location: class L1ServerTime
[javac] L1World.getallplayers();
[javac] ^
[javac] D:\LiveM6\src\l1j\server\server\Timer.java:27: cannot find symbol
[javac] symbol : method createitem(int,int)
[javac] location: class l1j.server.server.model.Instance.L1PcInstance
[javac] _pc.createitem(40308, 10);
[javac] ^
 
- Je ".java" moet hetzelfde heten als class naam.
- Verder moet je file ook diep in folder staat en de folder namen een omgekeerd webadress lijken. (dus com.example.blabla)
dan moet je aan je java file ook nog package declaratie toeven. (dus package com.example.blabla)..
- Ook zal je een import moeten toevoegen voor alle klasse die je gebruikt. Dus een import voor timer, timertask en L1PcInstance.

Ant is handig tool om java te compileren / builden maar niet echt gebruiksvriendelijk, handiger is het om een IDE te downloaden,
deze gebruiken intern ook ant. Maar zijn een stuk gebruiksvriendelijk..

De meeste IDE zijn tegenwoordig gratis. Goede zijn oa. Eclipse, Netbeans, BlueJ

Als je maar een programma probeert te compileren, wil ik dat wel doen, post dan wel even wat je wilt compileren.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan