Se avete dubbi o domande sulla programmazione in generale, fatele qui

Messaggio15 novembre 2011, 13:16 - [Risolto] problema compilazione java causa package #108702

ciao a tutti.
ho un piccolo grande problema con i package di java; sto creando un parser per un pseudo linguaggio matematico;momentaneamente ho una classe enum Simboli che contiene tutti i simboli che possono essere utilizzati per il linguaggio matematico vi mostro la classe:
Codice: Seleziona tutto
package Laboratorio4;

import java.lang.*;

enum Simboli {
      FALSE("false"), TRUE("true"), NOT("!"), AND("&&"), OR("||"), XOR("^"), EQ("=="), LT("<"), GT(">"), LEQ("<="), GEQ(">="), OPEN_PAR("("), CLOSED_PAR(")"),
      NUM {
    @Override
    public String toString() {return "is a number";}
      },
      EOF {
    @Override
    public String toString() {return "end of line";}
      },
      UNKNOWN {
    @Override
    public String toString() {return "unknown token";}
      },
      ;
      private String prova;
      Simboli() {this(null);}
      Simboli(String p) {this.prova=p;}
     
      @Override
      public String toString() {return this.prova;}
     
      public static void main(String[] args)
      {
   
    for(Simboli tmp: values())
    {
       System.out.println("Token Type: " +tmp.name()+" Concrete representatio: "+tmp);
    }
      }
};


ho inserito un piccolo main giusto per verificare se la classe era corretta!

ora se compilo con il package Laboratorio4 (che è il nome della cartella dove risiede il sorgente) la compilazione fa a buon fine ma al momento dell'esecuzione il compilatore mi restituisce:
Codice: Seleziona tutto
[inze@archbang Laboratorio4]$ java Simboli
Exception in thread "main" java.lang.NoClassDefFoundError: Simboli (wrong name: Laboratorio4/Simboli)
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
        at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class: Simboli.  Program will exit.


se invece compilo così:
Codice: Seleziona tutto
[inze@archbang Laboratorio4]$ java Laboratorio4.Simboli
Exception in thread "main" java.lang.NoClassDefFoundError: Laboratorio4/Simboli
Caused by: java.lang.ClassNotFoundException: Laboratorio4.Simboli
        at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class: Laboratorio4.Simboli.  Program will exit.


la cosa buffa che se compilo ed eseguo commentando la prima riga(quella del package) il codice funziona :/

se per caso qualcuno riesci ad aiutarmi li saro grato a vita :)
Ultima modifica di inze il 29 novembre 2011, 17:17, modificato 1 volta in totale.
"« Non c'è emozione; c'è pace. Non c'è ignoranza; c'è conoscenza. Non c'è inquietudine; c'è serenità. Non c'è caos; c'è armonia. Non c'è morte; c'è la Forza. »
inze
Novello Arciere
 
Messaggi: 30
Iscritto il: 13 giugno 2011, 15:00
Top

Messaggio15 novembre 2011, 14:40 - [Risolto] problema compilazione java causa package #108706

Ma da dove richiami il file? Io l'ho compilato e funziona.

Codice: Seleziona tutto
$ ls
Laboratorio4
$ ls Laboratorio4/
Simboli$1.class  Simboli$2.class  Simboli$3.class  Simboli.class  Simboli.java
$ java Laboratorio4.Simboli
Token Type: FALSE Concrete representatio: false
Token Type: TRUE Concrete representatio: true
Token Type: NOT Concrete representatio: !
Token Type: AND Concrete representatio: &&
Token Type: OR Concrete representatio: ||
Token Type: XOR Concrete representatio: ^
Token Type: EQ Concrete representatio: ==
Token Type: LT Concrete representatio: <
Token Type: GT Concrete representatio: >
Token Type: LEQ Concrete representatio: <=
Token Type: GEQ Concrete representatio: >=
Token Type: OPEN_PAR Concrete representatio: (
Token Type: CLOSED_PAR Concrete representatio: )
Token Type: NUM Concrete representatio: is a number
Token Type: EOF Concrete representatio: end of line
Token Type: UNKNOWN Concrete representatio: unknown token
Ruolo: maintainer di KDE SC
Google+ | Gittip | GitHub
Avatar utente
ndr
Amministratore
 
Messaggi: 2933
Iscritto il: 6 ottobre 2007, 0:41
Località: Lecce, Italy
Top

Messaggio15 novembre 2011, 14:49 - [Risolto] problema compilazione java causa package #108707

ho provato sia dentro la cartella Laboratorio4 con java Simboli che dalla cartella precedente richiamando java Laboratorio4.Simboli
continua a darmi lo stesso problema.
"« Non c'è emozione; c'è pace. Non c'è ignoranza; c'è conoscenza. Non c'è inquietudine; c'è serenità. Non c'è caos; c'è armonia. Non c'è morte; c'è la Forza. »
inze
Novello Arciere
 
Messaggi: 30
Iscritto il: 13 giugno 2011, 15:00
Top

Messaggio15 novembre 2011, 15:17 - [Risolto] problema compilazione java causa package #108708

scusa bash ma è possibile che non avendo i diritti di esecuzione della cartella mi da questo problema?
ho eseguito
Codice: Seleziona tutto
chmod 777 -R Laboratorio4


ed ora quando compilo con:
Codice: Seleziona tutto
[inze@archbang LPO11_12]$ java Laboratorio4.Simboli

va tutto a buon fine :/, non capisco il motivo non mi doveva dare problemi all'accesso alla cartella?
"« Non c'è emozione; c'è pace. Non c'è ignoranza; c'è conoscenza. Non c'è inquietudine; c'è serenità. Non c'è caos; c'è armonia. Non c'è morte; c'è la Forza. »
inze
Novello Arciere
 
Messaggi: 30
Iscritto il: 13 giugno 2011, 15:00
Top


Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite

Moderatori: 4javier, aleph, veleno77, adriano, Hilinus