Sida 1 av 1

Java kompilering

Postat: 17 jun 2007, 23:46
av elfizz
När jag försöker kompilera java med hjälp av javac commandot så får jag felmedelandet.

Kod: Markera allt

atriser.java:21: warning: unmappable character for encoding UTF8
    public void s�ttMatriser() {
                 ^
Matriser.java:22: warning: unmappable character for encoding UTF8
        double v�rde;
                ^
Matriser.java:26: warning: unmappable character for encoding UTF8
                System.out.println("V�rde i kol "+(i+1)+" och rad "+(j+1));
                                     ^
Matriser.java:27: warning: unmappable character for encoding UTF8
                v�rde = sc.nextDouble();
                 ^
Matriser.java:28: warning: unmappable character for encoding UTF8
                matris[i][j] = v�rde;
                                ^
Matriser.java:37: warning: unmappable character for encoding UTF8
            System.out.println("Om�jilig matrisermultiplikation");
                                  ^
Matriser.java:61: warning: unmappable character for encoding UTF8
        System.out.println("Ge antal kolunner och sen antal rader p� en matris");
                                                                   ^
Matriser.java:67: warning: unmappable character for encoding UTF8
        a.s�ttMatriser();
           ^
Matriser.java:69: warning: unmappable character for encoding UTF8
        System.out.println("Ge antal kolunner och sen antal rader p� en matris som du vill multiplisera med fr�n h�ger");
                                                                   ^
Matriser.java:69: warning: unmappable character for encoding UTF8
        System.out.println("Ge antal kolunner och sen antal rader p� en matris som du vill multiplisera med fr�n h�ger");
                                                                                                              ^
Matriser.java:69: warning: unmappable character for encoding UTF8
        System.out.println("Ge antal kolunner och sen antal rader p� en matris som du vill multiplisera med fr�n h�ger");
                                                                                                                  ^
Matriser.java:74: warning: unmappable character for encoding UTF8
        b.s�ttMatriser();
           ^
Matriser.java:21: illegal character: \65533
    public void s�ttMatriser() {
                 ^
Matriser.java:21: invalid method declaration; return type required
    public void s�ttMatriser() {
                  ^
Matriser.java:22: illegal character: \65533
        double v�rde;
                ^
Matriser.java:22: not a statement
        double v�rde;
                 ^
Matriser.java:27: illegal character: \65533
                v�rde = sc.nextDouble();
                 ^
Matriser.java:27: not a statement
                v�rde = sc.nextDouble();
                ^
Matriser.java:28: illegal character: \65533
                matris[i][j] = v�rde;
                                ^
Matriser.java:28: not a statement
                matris[i][j] = v�rde;
                                 ^
Matriser.java:67: illegal character: \65533
        a.s�ttMatriser();
           ^
Matriser.java:67: not a statement
        a.s�ttMatriser();
         ^
Matriser.java:74: illegal character: \65533
        b.s�ttMatriser();
           ^
Matriser.java:74: not a statement
        b.s�ttMatriser();
         ^
12 errors
12 warnings

Den här koden har gått jätte bra att kompilera i windows men inte nu längre när jag har gått över till ubuntu så vill den inte acceptera åäö längre, tydligen.
Hur ska man göra för att åtgärda detta?

SV: Java kompilering

Postat: 18 jun 2007, 00:19
av DrMegahertz
Om du flyttat filen från din windows-maskin så är filen inte kodad i utf-8. Kan vara det som strular, i regel så brukar jag själv aldrig använda svenska bokstäver när jag programmerar för att undvika strul... Men jag har ju aldrig programmerat Java heller :D

SV: Java kompilering

Postat: 18 jun 2007, 00:34
av elfizz
tackar, det löste problemet med åäö :)

Fast det gjorde så jag kunde upptäcka nästa hinder på vägen.
Det går jätte bra att kompilera det med javac men sen när jag ska köra det med java komandot så får jag upp det här felmedelandet

Kod: Markera allt

Exception in thread "main" java.lang.ClassFormatError: java (unrecognized class file version)
   at java.lang.VMClassLoader.defineClass(libgcj.so.70)
   at java.lang.ClassLoader.defineClass(libgcj.so.70)
   at java.security.SecureClassLoader.defineClass(libgcj.so.70)
   at java.net.URLClassLoader.findClass(libgcj.so.70)
   at gnu.gcj.runtime.SystemClassLoader.findClass(libgcj.so.70)
   at java.lang.ClassLoader.loadClass(libgcj.so.70)
   at java.lang.ClassLoader.loadClass(libgcj.so.70)
   at gnu.java.lang.MainThread.run(libgcj.so.70)
kan jag ha missat nått i intallationen av java eller är det nått annat som är fel?

SV: Java kompilering

Postat: 18 jun 2007, 01:18
av Okänd
Testa att lägga till flaggan -cp . när du kör java, jag har haft det problemet att classpath inte sätts.

SV: Java kompilering

Postat: 18 jun 2007, 12:04
av elfizz
När jag testar att lägga till flaggan -cp så får jag det här medelandet.

Kod: Markera allt

Usage: gij [OPTION] ... CLASS [ARGS] ...
          to invoke CLASS.main, or
       gij -jar [OPTION] ... JARFILE [ARGS] ...
          to execute a jar file
Try `gij --help' for more information.
Jag testade det också med mitt filnman efter men det gick inte häller.
Ska jag skriva in någon sökväg efter -cp, eller är det något annat som är fel?

SV: Java kompilering

Postat: 18 jun 2007, 12:45
av Okänd
Nej -cp .  (ser du punkten, den betyder att det är mappen du står i som läggs in i classpath) eftersom det är typ sökvägen till mappen med alla klass filer

SV: Java kompilering

Postat: 18 jun 2007, 12:52
av elfizz
När jag la till punkten fick jag precis samma felmedelande som innan :(

SV: Java kompilering

Postat: 18 jun 2007, 13:04
av Okänd
hmmm... udda, kan du skriva in raden du använder för att starta programmet med ?

te.x. när jag ska starta JDock så skriver jag

Kod: Markera allt

java -cp . JDock
och då står jag i mappen där class filerna ligger, samt att main metoden för att starta programmet ligger i JDock.class i samma mapp.

om jag inte kör utan -cp . så får jag detta fel

Kod: Markera allt


> java JDock
Exception in thread "main" java.lang.NoClassDefFoundError: JDock
   at gnu.java.lang.MainThread.run(libgcj.so.70)
Caused by: java.lang.ClassNotFoundException: JDock not found in gnu.gcj.runtime.SystemClassLoader{urls=[file:/usr/lib/GNUstep/System/Library/Libraries/Java/], parent=gnu.gcj.runtime.ExtensionClassLoader{urls=[], parent=null}}
   at java.net.URLClassLoader.findClass(libgcj.so.70)
   at gnu.gcj.runtime.SystemClassLoader.findClass(libgcj.so.70)
   at java.lang.ClassLoader.loadClass(libgcj.so.70)
   at java.lang.ClassLoader.loadClass(libgcj.so.70)
   at gnu.java.lang.MainThread.run(libgcj.so.70)
Exit 1



SV: Java kompilering

Postat: 18 jun 2007, 13:07
av elfizz
jag har bara gjort ett litet test program som jag håller på att testa med nu som har filmanet java.java.

De jag har testat är

java java
java -cp .
java -cp.
java -cp . java
java -cp. java

när jag skriver så som du skriver så för jag felbedelandet

Kod: Markera allt

Exception in thread "main" java.lang.ClassFormatError: java (unrecognized class file version)
   at java.lang.VMClassLoader.defineClass(libgcj.so.70)
   at java.lang.ClassLoader.defineClass(libgcj.so.70)
   at java.security.SecureClassLoader.defineClass(libgcj.so.70)
   at java.net.URLClassLoader.findClass(libgcj.so.70)
   at gnu.gcj.runtime.SystemClassLoader.findClass(libgcj.so.70)
   at java.lang.ClassLoader.loadClass(libgcj.so.70)
   at java.lang.ClassLoader.loadClass(libgcj.so.70)
   at gnu.java.lang.MainThread.run(libgcj.so.70)
altså samma som förut

SV: Java kompilering

Postat: 18 jun 2007, 13:36
av elfizz
jag testade att ladda hem java igen.
Vet inte om det blev något fel på förra installationen eller om jag ladade hem fel saker.
Men nu fungerar det iaf.

SV: Java kompilering

Postat: 18 jun 2007, 14:42
av Okänd
ah vad bra att det funkar ^_^