Eclipse, JUnit, java.util.Currency [LÖST]

Här diskuteras programmering och utveckling
Användarvisningsbild
micke_nordin
Inlägg: 1539
Blev medlem: 21 aug 2008, 17:03
OS: Ubuntu
Utgåva: 22.10 Kinetic Kudu
Kontakt:

Eclipse, JUnit, java.util.Currency [LÖST]

Inlägg av micke_nordin »

Hallå vänner!

Jag håller på att byta till Eclipse från BlueJ, for all my java hacking needs. Tyvärr har jag fått ett problem som jag inte riktigt vet hur jag skall felsöka.
Jag använder alltså eclipse 3.2 från förråden tillsammans med suns java jdk (också från förråden).
I en uppgift till min java kurs skall vi skriva kod i ett fördefinierat kodskellet på ett sådant sätt att den klara ett antal förskrivna junittest. Mitt problem hänger samman med en klass som använder sig av java.util.Currency. När jag kör junittestet får jag följande felmeddelande från eclipse:

Kod: Markera allt

java.lang.IllegalArgumentException: Invalid (empty) country code for locale:aa
   at java.util.Currency.<init>(libgcj.so.90)
   at java.util.Currency.getInstance(libgcj.so.90)
   at java.util.Currency.getInstance(libgcj.so.90)
   at Sek.<init>(Sek.java:16)
   at MoneyTester.setUp(MoneyTester.java:35)
   at junit.framework.TestCase.runBare(TestCase.java:132)
   at junit.framework.TestResult$1.protect(TestResult.java:110)
   at junit.framework.TestResult.runProtected(TestResult.java:128)
   at junit.framework.TestResult.run(TestResult.java:113)
   at junit.framework.TestCase.run(TestCase.java:124)
   at junit.framework.TestSuite.runTest(TestSuite.java:232)
   at junit.framework.TestSuite.run(TestSuite.java:227)
   at org.junit.internal.runners.OldTestClassRunner.run(OldTestClassRunner.java:76)
   at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:38)
   at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
   at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
   at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
   at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
   at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)

Konstruktorn för klassen Sek där felet uppstår ser ut så här:

Kod: Markera allt

    public Sek(double amount)
    {
    	super(amount, Currency.getInstance("SEK"));
    }
Det som gör att jag blir fundersam är att testet går igenom utan problem när jag testar i BlueJ.

Några idéer, någon?

/Micke
Senast redigerad av 1 micke_nordin, redigerad totalt 8 gånger.
diwic
Inlägg: 96
Blev medlem: 27 jan 2008, 12:54
OS: Ubuntu
Utgåva: 20.04 Focal Fossa LTS
Kontakt:

Re: Eclipse, JUnit, java.util.Currency

Inlägg av diwic »

Det verkar som om du använder libgcj.so.90, dvs Gnus JDK istället för Suns JDK.
Antagligen lyckas BlueJ använda Suns JDK.
Jag är osäker på hur man ändrar det; vad har du under Properties (på projektet) -> Java Build Path -> Libraries t ex?
Användarvisningsbild
micke_nordin
Inlägg: 1539
Blev medlem: 21 aug 2008, 17:03
OS: Ubuntu
Utgåva: 22.10 Kinetic Kudu
Kontakt:

Re: Eclipse, JUnit, java.util.Currency [LÖST]

Inlägg av micke_nordin »

Tack! Det löste problemet.

Jag gick på (i projektet) "Properties" → "Java Build Path" → "Libraries" → " Add Library" → "JRE System Library". Där markerade jag "Alternate JRE" och klickade på "Installed JREs" varefter jag klickade på "Search" och letade upp suns katalog som fanns i /usr/lib/jvm/java-6-sun-1.6.0.10

Sedan var det bara att välja rätt JRE och köra!

Tack så mycket.

/Micke
Skriv svar

Återgå till "Programmering och webbdesign"