[ Java ] FileWriter geeft problemen tijdens compilen

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • the_scientist
  • Registratie: November 2004
  • Laatst online: 15-11-2023
Beste Tweakers,

Momenteel werk ik aan een applicatie voor het bijhouden van lease-auto's. Ik ben bezig met de export-module hiervan, de bedoeling is dat de data in de array wordt geëxporteerd naar een .csv-bestand. Later wordt dit uiteraard uit de database gehaald.

Echter, wanneer ik bovenstaande code compile, krijg ik de volgende foutmelding van Maven:
[ Error ] No source code is available for type java.io.FileWriter; did you forget to inherit a required module?
[ Error ] No source code is available for type java.io.IOException; did you forget to inherit a required module?

Deze foutmelding wordt getoond wanneer ik gebruikmaak van de FileWriter en de IOException. Comment ik dit allemaal weg in generateCsvFile, dan wordt de compile gewoon uitgevoerd en draait het hele zaakje. Het vreemde is echter dat deze code wel in NetBeans werkt, waar ik alles heb getest, maar niet onder Eclipse wil draaien waar de applicatie in gebouwd is.

Iemand die weet waar de fout zit?

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
package com.accenture.fca.ats.client.importexport;
import java.io.FileWriter;
import java.io.IOException;

    private static void retrieveData()
       {
           String data[][] = {
               {"Naam", "Leeftijd", "Adres", "Kenteken" },
               {"Jan", "12", "Straat 1", "00-AA-AA" },
               {"Piet", "13", "Straat 2", "11-BB-BB" },
               {"Klaas", "14", "Straat 3", "22-CC-CC" }
           };
           generateCsvFile("c:\\test.csv", data);
       }

    private static void generateCsvFile(String sFileName, String DataToExport[][] )
    {
        try
        {
        
            FileWriter writer = new FileWriter(sFileName); 
            
            for (int row = 0; row < DataToExport.length; row++)
            {
                for (int column = 0; column < DataToExport[ row ].length; column++)
                {
                writer.append(DataToExport[row][column]);
                writer.append(";");
                }

                writer.append('\n');

                }    
                writer.flush();
                writer.close();

        }
      
        catch(IOException e)
        {
            e.printStackTrace();
        }
    }

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 21-09 02:21

Janoz

Moderator Devschuur®

!litemod

De fout zit waarschijnlijk ergens in de configuratie van je ontwikkelomgeving. Beide classes zitten standaard in java en daarom zou daarvoor de source helemaal niet nodig hoeven zijn.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • Matis
  • Registratie: Januari 2007
  • Laatst online: 21-09 10:43

Matis

Rubber Rocket

Java is al een tijd geleden voor mij, maar ik zie dat je Maven gebruikt als OO. Als ik het me goed herinner is dat voor Linux geschreven. Misschien moet je eens naar hoofdletters kijken van je imports; Linux is daarin wat gevoeliger dan Windows ;)

Staat zoals hierboven genoemd is de paden naar je JDK JRE goed?

Het lijkt idd ofdat de compiler niet de juiste import kan vinden...

[ Voor 21% gewijzigd door Matis op 16-03-2009 13:37 . Reden: Te snel op verstuur gedrukt :( ]

If money talks then I'm a mime
If time is money then I'm out of time


Acties:
  • 0 Henk 'm!

  • the_scientist
  • Registratie: November 2004
  • Laatst online: 15-11-2023
Zou kunnen, echter krijg ik wel informatie over de module te zien wanneer ik met m'n muis over de import ga. Voor ontwikkeling gebruiken we trouwens Eclipse, Maven wordt alleen gebruikt om te compilen. Vraag me niet waarom ;)
toaomatis schreef op maandag 16 maart 2009 @ 13:36:
Java is al een tijd geleden voor mij, maar ik zie dat je Maven gebruikt als OO. Als ik het me goed herinner is dat voor Linux geschreven. Misschien moet je eens naar hoofdletters kijken van je imports; Linux is daarin wat gevoeliger dan Windows ;)

Staat zoals hierboven genoemd is de paden naar je JDK JRE goed?

Het lijkt idd ofdat de compiler niet de juiste import kan vinden...
Ik denk het wel, FileWriter en IOException worden wel gevonden via de intellisense wanneer ik de imports opnieuw intik.

[ Voor 58% gewijzigd door the_scientist op 16-03-2009 13:47 ]


Acties:
  • 0 Henk 'm!

  • Matis
  • Registratie: Januari 2007
  • Laatst online: 21-09 10:43

Matis

Rubber Rocket

the_scientist schreef op maandag 16 maart 2009 @ 13:39:
Zou kunnen, echter krijg ik wel informatie over de module te zien wanneer ik met m'n muis over de import ga. Voor ontwikkeling gebruiken we trouwens Eclipse, Maven wordt alleen gebruikt om te compilen. Vraag me niet waarom ;)


[...]


Ik denk het wel, FileWriter en IOException worden wel gevonden via de intellisense wanneer ik de imports opnieuw intik.
Ja, dat kan wel zijn, maar als ik het vertaal naar bijvoorbeeld C++; Als hij de headerfile wel kan vinden hoeft dat nog niet automatisch te betekenen dat hij dan ook de libraries (*.so) kan vinden; Die staan vaak ergens anders.

Edit: en ik druk weer te snel op de verstuur knop :(

Misschien moet je (weet niet welke distro je gebruikt) eens ff in je package-manager kijken of dat je wel de dev-libs hebt.

Edit 2:
Ik moet bekennen dat het voor mij een hele tijd geleden is dat ik met Java en Linux gewerkt heb, maar ik denk dat je toch eens naar de instellingen (linkers) moet gaan kijken; Ben bang dat daar een path verkeerd staat...

[ Voor 22% gewijzigd door Matis op 16-03-2009 13:50 . Reden: Te snel op verstuur gedrukt :( ]

If money talks then I'm a mime
If time is money then I'm out of time


Acties:
  • 0 Henk 'm!

  • Remus
  • Registratie: Juli 2000
  • Laatst online: 15-08-2021
toaomatis schreef op maandag 16 maart 2009 @ 13:48:
[...]


Ja, dat kan wel zijn, maar als ik het vertaal naar bijvoorbeeld C++; Als hij de headerfile wel kan vinden hoeft dat nog niet automatisch te betekenen dat hij dan ook de libraries (*.so) kan vinden; Die staan vaak ergens anders.

Edit: en ik druk weer te snel op de verstuur knop :(

Misschien moet je (weet niet welke distro je gebruikt) eens ff in je package-manager kijken of dat je wel de dev-libs hebt.

Edit 2:
Ik moet bekennen dat het voor mij een hele tijd geleden is dat ik met Java en Linux gewerkt heb, maar ik denk dat je toch eens naar de instellingen (linkers) moet gaan kijken; Ben bang dat daar een path verkeerd staat...
Java heeft geen headers files of linkers dus dat is niet relevant. Daarnaast zijn de genoemde bestanden onderdeel van de standaard java library. Nu heb ikzelf ook geen ervaring met Maven, maar de meest waarschijnlijke oorzaak is dat er een incorrect CLASSPATH is ingesteld, zodat de rt.jar niet gevonden kan worden (waarin onder andere java.io.* is opgenomen).

Acties:
  • 0 Henk 'm!

  • Snake
  • Registratie: Juli 2005
  • Laatst online: 07-03-2024

Snake

Los Angeles, CA, USA

Kijk ook uit met het wegschrijven naar C:. Als je Vista hebt gaat dat niet mogen.

Going for adventure, lots of sun and a convertible! | GMT-8


Acties:
  • 0 Henk 'm!

  • JaWi
  • Registratie: Maart 2003
  • Laatst online: 20-09 21:57

JaWi

maak het maar stuk hoor...

Als ik op jouw foutmelding Google, dan krijg ik alleen maar referenties naar diens GWT (Google Web Toolkit).

De GWT compiler (welke waarschijnlijk via Maven aanroepen wordt) probeert jouw Java-code naar Javascript te vertalen, maar dat lukt niet omdat je van "verboden" Java klassen gebruik maakt. (Zie ook deze link).

Om je import/export routine te maken zul je dus iets moeten doen met de code die op de server draait, welke je vervolgens via de client aan kan roepen...

Statistics are like bikinis. What they reveal is suggestive, but what they hide is vital.


Acties:
  • 0 Henk 'm!

  • Nick_S
  • Registratie: Juni 2003
  • Laatst online: 18-09 22:40

Nick_S

++?????++ Out of Cheese Error

Misschien iets heel stoms, hoor, maar ik zie geen classe definitie?

Tussen je imports en je methodes zou nog de klasse moeten staan.

Gebruikte je binnen Netbeans niet een of andere Scrapbook functie, waarbinnen je snel even wat Javacode kan checken en uitvoeren, ipv. dat je een echte java file hebt gemaakt?
toaomatis schreef op maandag 16 maart 2009 @ 13:36:
Java is al een tijd geleden voor mij, maar ik zie dat je Maven gebruikt als OO. Als ik het me goed herinner is dat voor Linux geschreven. Misschien moet je eens naar hoofdletters kijken van je imports; Linux is daarin wat gevoeliger dan Windows ;)

Staat zoals hierboven genoemd is de paden naar je JDK JRE goed?

Het lijkt idd ofdat de compiler niet de juiste import kan vinden...
Maven is niet voor Linux geschreven, maar voor Java. ;) Ook al ondersteund het nu ook andere talen. En Java is in theorie nog steeds Write Once Run Everywhere, dus volgens mij zitten er geen hoofdletter verschillen in de taal specificatie.

[ Voor 54% gewijzigd door Nick_S op 17-03-2009 01:37 ]

'Nae King! Nae quin! Nae Laird! Nae master! We willna' be fooled agin!'


Acties:
  • 0 Henk 'm!

  • Salandur
  • Registratie: Mei 2003
  • Laatst online: 21-09 14:41

Salandur

Software Engineer

als je met maven wilt compileren, dien je de omgevings variable JAVA_HOME in te stellen en deze naar de JDK te laten wijzen. ik vermoed dat je dit niet gedaan hebt, of niet goed, waardoor maven het Java classpath niet kan samenstellen

Assumptions are the mother of all fuck ups | iRacing Profiel


Acties:
  • 0 Henk 'm!

  • the_scientist
  • Registratie: November 2004
  • Laatst online: 15-11-2023
Nick_S schreef op dinsdag 17 maart 2009 @ 01:34:
Misschien iets heel stoms, hoor, maar ik zie geen classe definitie?

Tussen je imports en je methodes zou nog de klasse moeten staan.

Gebruikte je binnen Netbeans niet een of andere Scrapbook functie, waarbinnen je snel even wat Javacode kan checken en uitvoeren, ipv. dat je een echte java file hebt gemaakt?


[...]

Maven is niet voor Linux geschreven, maar voor Java. ;) Ook al ondersteund het nu ook andere talen. En Java is in theorie nog steeds Write Once Run Everywhere, dus volgens mij zitten er geen hoofdletter verschillen in de taal specificatie.
Ik heb een echte java-file gemaakt maar een hoop code weggelaten in m'n post, zodat hier niet zo'n enorme lap zou staan ;)

Acties:
  • 0 Henk 'm!

Verwijderd

toaomatis schreef op maandag 16 maart 2009 @ 13:36:
...

Staat zoals hierboven genoemd is de paden naar je JDK JRE goed?

Het lijkt idd ofdat de compiler niet de juiste import kan vinden...
Salandur schreef op dinsdag 17 maart 2009 @ 07:50:
als je met maven wilt compileren, dien je de omgevings variable JAVA_HOME in te stellen en deze naar de JDK te laten wijzen. ik vermoed dat je dit niet gedaan hebt, of niet goed, waardoor maven het Java classpath niet kan samenstellen
De compiler kan de class files niet vinden.
Zoals hierboven al aangeven dien je JAVA_HOME toe voegen.
Setting JAVA_HOME

Overigens voeg ik de %JAVA_HOME%\bin daarna ook altijd aan mijn PATH toe maar dat is voor jou probleem niet nodig. Hierdoor zou je ook vanaf de commandline kunnen compilen.

Acties:
  • 0 Henk 'm!

  • the_scientist
  • Registratie: November 2004
  • Laatst online: 15-11-2023
JAVA_HOME net even gecontroleerd aan de hand van de link die werd gegeven, maar die staat goed ingesteld. Onderstaand antwoord kreeg ik op een ander forum:
Het resultaat van 'GWT code' (geprogrammeerd in Java) is voor zover ik weet Javascript.

Wanneer je iets niet in Javascript kunt doen, kan het dus ook niet in GWT.

Jij probeert een file weg te schrijven naar schijf. Voor zover ik weet kun je met Javascript nog steeds niet bij het filesystem , dus kun je niet zomaar een FileWriter in je code gebruiken.
Hierop klapt de compiler dus denk ik ook.... (zoekt naar javascript functionaliteit voor de code die jij hebt geschreven, kan deze niet vinden etc.)

Ik heb zelf nooit met GWT gewerkt dus weet niet of dit echt zo is, maar ik kan me haast niet anders voorstellen...
Lijkt erop dat dit script gewoon niet gaat werken, en dat het waarschijnlijk anders opgelost zal moeten worden :(

Acties:
  • 0 Henk 'm!

  • RedRose
  • Registratie: Juni 2001
  • Niet online

RedRose

Icebear

Ik vermoed dat Maven verkeerd geconfigureerd staat. Als ik op http://maven.apache.org/g...aven-in-five-minutes.html en op http://maven.apache.org/general.html kijk, dan staat daar het een en ander over Maven, dat recente jars download enzovoort. Had je daar al gekeken ?

[ Voor 7% gewijzigd door RedRose op 17-03-2009 09:50 ]

Sundown Circus


Acties:
  • 0 Henk 'm!

  • NetForce1
  • Registratie: November 2001
  • Laatst online: 20-09 23:15

NetForce1

(inspiratie == 0) -> true

the_scientist schreef op dinsdag 17 maart 2009 @ 09:31:
JAVA_HOME net even gecontroleerd aan de hand van de link die werd gegeven, maar die staat goed ingesteld. Onderstaand antwoord kreeg ik op een ander forum:


[...]


Lijkt erop dat dit script gewoon niet gaat werken, en dat het waarschijnlijk anders opgelost zal moeten worden :(
Je hebt in GWT een server-kant en een client-kant. Jij probeert waarschijnlijk de csv weg te schrijven vanaf je client, dat gaat dus niet werken. Je zult de code aan je server-kant moeten stoppen, en dan via SOAP aanroepen.

De wereld ligt aan je voeten. Je moet alleen diep genoeg willen bukken...
"Wie geen fouten maakt maakt meestal niets!"


Acties:
  • 0 Henk 'm!

  • Nick_S
  • Registratie: Juni 2003
  • Laatst online: 18-09 22:40

Nick_S

++?????++ Out of Cheese Error

Als je problemen hebt met maven, gooi dan even hier je project structuur en pom file neer, dan kan ik altijd wel even een kijkje nemen.

'Nae King! Nae quin! Nae Laird! Nae master! We willna' be fooled agin!'


Acties:
  • 0 Henk 'm!

  • Salandur
  • Registratie: Mei 2003
  • Laatst online: 21-09 14:41

Salandur

Software Engineer

NetForce1 schreef op dinsdag 17 maart 2009 @ 10:00:
[...]

Je hebt in GWT een server-kant en een client-kant. Jij probeert waarschijnlijk de csv weg te schrijven vanaf je client, dat gaat dus niet werken. Je zult de code aan je server-kant moeten stoppen, en dan via SOAP aanroepen.
GWT heeft hier denk ik niks mee te maken

Assumptions are the mother of all fuck ups | iRacing Profiel


Acties:
  • 0 Henk 'm!

  • NetForce1
  • Registratie: November 2001
  • Laatst online: 20-09 23:15

NetForce1

(inspiratie == 0) -> true

De wereld ligt aan je voeten. Je moet alleen diep genoeg willen bukken...
"Wie geen fouten maakt maakt meestal niets!"

Pagina: 1