2013-04-04 19 views
9

Ciągle pojawia się ten błąd podczas wykonywania i nie mam pojęcia, co jest przyczyną. Uważa, że ​​brakuje pliku?Weird Java runtime error - currency.data

Caused by: java.io.FileNotFoundException: C:\Program Files\Java\jdk1.7.0_07\lib\currency.data

Co jest currency.data i ktoś może sugerować, dlaczego tak się dzieje, mój JDK nie jest taki stary, ponieważ jesteśmy w 7u17 teraz.

Exception in thread "AWT-EventQueue-0" java.lang.InternalError 
    at java.util.Currency$1.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.util.Currency.<clinit>(Unknown Source) 
    at java.text.DecimalFormatSymbols.initialize(Unknown Source) 
    at java.text.DecimalFormatSymbols.<init>(Unknown Source) 
    at java.text.DecimalFormatSymbols.getInstance(Unknown Source) 
    at java.text.NumberFormat.getInstance(Unknown Source) 
    at java.text.NumberFormat.getNumberInstance(Unknown Source) 
    at java.util.Scanner.useLocale(Unknown Source) 
    at java.util.Scanner.<init>(Unknown Source) 
    at java.util.Scanner.<init>(Unknown Source) 
    at ciphor.CiCompile$7.actionPerformed(CiCompile.java:458) 
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) 
    at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) 
    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) 
    at javax.swing.DefaultButtonModel.setPressed(Unknown Source) 
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source) 
    at java.awt.Component.processMouseEvent(Unknown Source) 
    at javax.swing.JComponent.processMouseEvent(Unknown Source) 
    at java.awt.Component.processEvent(Unknown Source) 
    at java.awt.Container.processEvent(Unknown Source) 
    at java.awt.Component.dispatchEventImpl(Unknown Source) 
    at java.awt.Container.dispatchEventImpl(Unknown Source) 
    at java.awt.Component.dispatchEvent(Unknown Source) 
    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) 
    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) 
    at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) 
    at java.awt.Container.dispatchEventImpl(Unknown Source) 
    at java.awt.Window.dispatchEventImpl(Unknown Source) 
    at java.awt.Component.dispatchEvent(Unknown Source) 
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source) 
    at java.awt.EventQueue.access$200(Unknown Source) 
    at java.awt.EventQueue$3.run(Unknown Source) 
    at java.awt.EventQueue$3.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) 
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) 
    at java.awt.EventQueue$4.run(Unknown Source) 
    at java.awt.EventQueue$4.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) 
    at java.awt.EventQueue.dispatchEvent(Unknown Source) 
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) 
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) 
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) 
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source) 
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source) 
    at java.awt.EventDispatchThread.run(Unknown Source) 
Caused by: java.io.FileNotFoundException: C:\Program Files\Java\jdk1.7.0_07\lib\currency.data (The system cannot find the file specified) 
    at java.io.FileInputStream.open(Native Method) 
    at java.io.FileInputStream.<init>(Unknown Source) 
    at java.io.FileInputStream.<init>(Unknown Source) 
    ... 48 more 

Biegnę mój program ze środowiska JDK, sprawdziłem moje folderu jre7 i currency.data jest tam obecny! Dlaczego jest obecny tylko w folderze jre?

+0

Może warto odinstalować/ponownie zainstalować jdk/jre? – assylias

+0

@assylias Mam zamiar zaktualizować mój JDK do najnowszej wersji i sprawdzić, czy plik ten pojawił się magicznie. – Ciphor

+0

Myślę, że powinno znajdować się w pliku rt.jar ... – assylias

Odpowiedz

0

stwierdziliśmy, że currency.data znajduje się albo:

C:\Program Files\Java\jdk1.7.0_17\jre\lib

lub

C:\Program Files\Java\jdk1.7.0_07\lib

Z jakiegoś powodu, kiedy wykonać mój program, Java nie wie szukać jednego katalog głębiej.

0

W dawnych czasach skool, Sun określił, że JAVA_HOME powinien wskazywać na JDK_HOME/jre, jeśli zainstalowano JDK zamiast samego środowiska JRE.

To zróżnicowanie powoli erozji z tego samego powodu, dla którego "exalator" staje się dopuszczalną wymową "schodkowych": wszechobecność.

W każdym razie niektóre starsze aplikacje nadal zakładamy JAVA_HOME jest korzeniem JRE

0

JDK 1.7.0_43 nie ma currency.data pod lib /, tylko w jre/lib. Zmusza mnie to do zmiany skryptów kompilacji, aby używać JDK do kompilowania, a następnie używania środowiska JRE do testów jednostkowych. Chyba że jest lepszy sposób.

3

Miałem ten sam problem. Było to spowodowane konfliktem Java verison ("JAVA_HOME" ustawiono na 1.7, a właściwość "-Djava.home" na 1.6).

używałem mvn do budowania projektu i w zmiennej środowiskowej MAVEN_OPTS opcja "java-home" został ustawiony na wartość ŹLE:

MAVEN_OPTS = -Xmx512m -XX:MaxPermSize=256m "-Djava.home=C:\Program Files\Java\jdk1.6.0_35\jre" 

Wystarczy POPRAWNIE go:

MAVEN_OPTS = -Xmx512m -XX:MaxPermSize=256m 

także sprawdzić inne zmienne środowiskowe:

MAVEN_OPTS 
JAVA_HOME 
9

mam podobny błąd i to tylko, aby pomóc innym ludziom, którzy mogą wpaść w tę samą pułapkę :)

Błąd:

java.lang.InternalError: java.io.FileNotFoundException: null/lib/currency.data (No such file or directory) 

To dlatego, że mam ustawić globalne właściwości, które zamienia być bardzo nierozsądną rzeczą do zrobienia.

System.setProperties(new Properties()); 

System właściwości są wypełniane bardzo ważne dane w tym:

  • path.separator
  • user.dir
  • file.encoding
  • file.separator
  • java. io.tmpdir

Zasadniczo nie rób tego wyżej, chyba że wiesz, co robisz.

Jeśli chcesz do nieruchomości, to zrobić w zamian:

System.getProperties().put("SOME_KEY", "SOME_VALUE"); 

lub

Map myCustomMapOfProps = ... 
System.getProperties().putAll(myCustomMapOfProps); 
+0

ha ha ha śmiejąc się z tego co właśnie zrobiłem 'System.setProperty (nowe właściwości());': D –

+0

@AnandRockzz, Zajęło mi godziny, aby dowiedzieć się, dlaczego ;-) – rjdkolb

+0

To głupie, że Java nie daje ci sposób na dodawanie właściwości bez wciskania wszystkiego, co masz. –

1

To mój solition. Możesz dodać to w kodzie:

System.setProperty("java.home", "C:\\Program Files\\Java\\jdk1.8.0_60\\jre"); 

należy zastąpić ścieżkę twoich wersji JDK.

+0

Dopisz \\ jre było moim rozwiązaniem, dzięki – Dani

0

Miałem ten sam problem z aplikacją webową wdrożoną w programie Wildfly 10 po zainstalowaniu nowego środowiska, gdy serwer działał. Ponowne uruchomienie serwera rozwiązało problem.