Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di jegger
    Registrato dal
    Mar 2005
    Messaggi
    74

    Non riesco a compilare i sorgenti

    Salve a tutti.

    Sto provando a compilare i sorgenti x alcune librerie di Java chiamate JavaSim.
    Quando eseguo il comando make dentro la directory contenente i sorgenti mi compaiono una serie di errori del tipo:

    codice:
    SimulationProcessList.java:164: cannot find symbol symbol  : class SimulationProcess location: class arjuna.JavaSim.Simulation.SimulationProcessList 	SimulationProcess prev = null;
    Presumo sia un problema di classpath. E' possibile?

    Sto lavorando sotto linux e se digito il comando
    codice:
     javac -version
    mi ritorna:

    codice:
    javac 1.6.0_16
    quindi penso di stare usando il compilatore giusto.

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    3
    è possibile. Quale comando usi per compilare? (se, come dici, sta dentro un makefile, posta qui il suo contenuto)

  3. #3
    Utente di HTML.it L'avatar di jegger
    Registrato dal
    Mar 2005
    Messaggi
    74
    Ti ringrazio webc.

    Allora, il makefile è questo:

    codice:
    MAKE = make
    
    JAVA  = javac
    
    JAVA_FLAGS =
    
    SOURCES	= SimulationProcessList.java Scheduler.java \
    	  SimulationProcess.java SimulationException.java \
    	  SimulationEntity.java Semaphore.java TriggerQueue.java \
    	  SemaphoreOutcome.java RestartException.java
    
    all: SimulationProcessList.class Scheduler.class \
         SimulationProcess.class SimulationException.class \
         SimulationEntity.class Semaphore.class TriggerQueue.class \
         SemaphoreOutcome.class RestartException.class
    
    Scheduler.class: Scheduler.java
    	$(JAVA) $(JAVA_FLAGS) Scheduler.java
    
    SimulationProcess.class: SimulationProcess.java
    	$(JAVA) $(JAVA_FLAGS) SimulationProcess.java
    
    SimulationException.class: SimulationException.java
    	$(JAVA) $(JAVA_FLAGS) SimulationException.java
    
    RestartException.class: RestartException.java
    	$(JAVA) $(JAVA_FLAGS) RestartException.java
    
    SimulationProcessList.class: SimulationProcessList.java
    	$(JAVA) $(JAVA_FLAGS) SimulationProcessList.java
    
    SimulationEntity.class: SimulationEntity.java
    	$(JAVA) $(JAVA_FLAGS) SimulationEntity.java
    
    Semaphore.class: Semaphore.java
    	$(JAVA) $(JAVA_FLAGS) Semaphore.java
    
    SemaphoreOutcome.class: SemaphoreOutcome.java
    	$(JAVA) $(JAVA_FLAGS) SemaphoreOutcome.java
    
    TriggerQueue.class: TriggerQueue.java
    	$(JAVA) $(JAVA_FLAGS) TriggerQueue.java
    
    clean:
    	rm -rf *.class *~*
    
    purge: clean

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    L'errore indicato all'inizio dice chiaramente:

    SimulationProcessList.java cannot find symbol symbol : class SimulationProcess location: class arjuna.JavaSim.Simulation.SimulationProcessList

    Ovvero le classi sono dentro dei "package". E quando ci sono i package di mezzo bisogna rispettare la regola fondamentale: i nomi dei package si devono sempre "riflettere" nella struttura delle cartelle.

    E nel makefile postato non c'è assolutamente alcuna indicazione e predisposizione a gestire la compilazione rispettando correttamente i package! Il makefile, così come è, presupporrebbe che i file .java e i file .class siano tutti nella stessa directory "corrente". E se ci sono i package .... non è così!!

    Il makefile è sbagliato. E visto che compilare molti sorgenti Java con un semplice makefile è scomodo oltre che non portabile, sarebbe molto meglio e preferibile usare Ant.
    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 jegger
    Registrato dal
    Mar 2005
    Messaggi
    74
    Ti ringrazio andbin, proverò a vedere di sistemare il make in modo da fargli vedere il package.

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.