Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di energie
    Registrato dal
    Apr 2003
    Messaggi
    446

    [JAVA]Difficoltà nella compilazione importando altri files .class

    Ragazzi spiegatemi una cosa che sn mesi che non riesco a capire.Mi sto studiando un po' di sorgenti,ora dovrei compilarne uno.Ho modificato un file sorgente e siccome per essere eseguito ha bisogno di altri files class già compilati lo metto nella cartella dove questi sono presenti,nelle prime righe di codice trovo:


    import GeneralBufferedReader;

    GeneralBufferReader è un file in bytecode che si trova nella stessa cartella del file java che sto compilando,ma nella compilazione ho questo errore:

    '.' expected
    import GeneralBufferedReader;


    Ora spiegatemi,anzi illuminatemi,quando devo importare altri class(come in questo caso) devo creare un percorso particolare?Io qui nei sorgenti non lo vedo per cui li ho messi tutti nella stessa cartella...

  2. #2
    se il file da importare si trova nello stessa cartella (package) della classe che vuoi compilare non devi eseguire alcun import.

    L'import è necessario qualora la classe esterna si trovi in un package differente.

    L'errore ti esce perchè cmq l'import vorrebbe un percorso del tipo: cartella1.cartella2.NomeClasse;
    Al mio segnale... scatenate l'inferno!

  3. #3
    Utente di HTML.it L'avatar di energie
    Registrato dal
    Apr 2003
    Messaggi
    446
    R@ve,grazie per aver svelato l'arcano,ora funziona!
    Grazie ancora

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: [JAVA]Difficoltà nella compilazione importando altri files .class

    Originariamente inviato da energie
    Ora spiegatemi,anzi illuminatemi,quando devo importare altri class(come in questo caso) devo creare un percorso particolare?
    La questione è sempre la solita ... quella di capire come vanno trattati i package e il "classpath".

    La prima regola è che se una classe è in un package, allora a livello di file-system i nomi dei package si devono "riflettere" nella struttura delle directory.

    Ho un file Pippo.java che contiene:

    codice:
    package com.topolinia;
    
    public class Pippo { }
    Il file .class potrebbe essere messo (su Windows) in:

    codice:
    C:\
     |
     +-- prove
          |
          +-- com
               |
               +-- topolinia
                       \
                         Pippo.class
    com\topolinia è tassativo che deve essere così.

    E in "classpath" ci deve essere la directory "C:\prove" cioè la directory "base" che contiene il package.

    Vediamo la import. import serve per importare tipi in altri package. Se una classe non è definita in un qualche package (non ha la dichiarazione di package), allora è nel package "un-named" (senza nome).
    Risultato: non si possono importare tipi nel package un-named (dopotutto se il package non ha nome .... come lo importi???).

    Caso semplice:

    Se hai 2 classi senza alcun package es:

    codice:
    C:\
     |
     +-- prove
           \
             Pippo.java
             Pippo.class
             Pluto.java
             Pluto.class
    Per far sì che entrambe siano visibili, è sufficiente che in "classpath" ci sia: o il '.' (directory corrente) ma solo se si avvia la JVM restando in C:\prove) o esattamente la directory "C:\prove". O anche un path relativo che dipende da dove ci si trova come directory corrente.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it L'avatar di energie
    Registrato dal
    Apr 2003
    Messaggi
    446
    grazie anche a te andbin, tutto ciò che leggo devo adattarlo per il mio sistema operativo,spesso trovo solo la "soluzione" per windows.Thanks ancora!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.