Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    143

    [Java] Compilazione con i package

    Ciao, sto facendo un'applicazione web, soltanto che ho dei problemi a compilare le classi java che hanno il ruolo di servlet, javabean ecc...

    Struttura delle cartelle:

    C:\.....\PrimaWebApp\WEB-INF\classes\mvc\

    dentro la cartella mvc ci sono Servlet.java e JavaBean.java
    Questi 2 file cominciano con:

    package mvc;

    all'inizio, dal prompt, andavo fino alla cartella mvc e facevo javac....
    JavaBean.java restituiva il .class, mentre per Servlet.java mi diceva:
    cannot find symbol JavaBean.... perché dentro Servlet.java c'è qualche riferimento a JavaBean.
    Leggendo in giro ho saputo che si deve compilare dalla cartella contenente il package, per cui dovrei fare:

    arrivo fino alla mia cartella classes e poi javac mvc/Servlet.java

    mi dà sempre il messaggio cannot find symbol JavaBean

    Premetto che javac mvc/JavaBean.java ha funzionato.

    Non capisco come devo fare a compilare, mi potete dare una mano?
    Grazie mille

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    Si, la compilazione la fai con
    codice:
    javac nomePackage/nomeFile.java
    Se il codice della servlet non e' lungo, prova a postarlo.

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    143
    Ok, posto.
    premessa: ci saranno un po di errori nel codice, è la prima applicazione che faccio

    La Servlet:
    codice:
    package mvc;
    
    public class Servlet extends javax.servlet.http.HttpServlet 
    {
    public void doPost(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, java.io.IOException
    {
    	javax.servlet.ServletContext sc;
    	javax.servlet.RequestDispatcher rd;
    
    	try
    	{
    		// instantiate the bean.
    		JavaBean javaBean = new JavaBean();
    
    		request.setAttribute("javaBean", javaBean);
    
    		// Initialize the bean x property
    		javaBean.setX(request.getParameter("x"));
    		// Invoke moltiplica action on the bean.
    		javaBean.controllaCampi();
    
    		sc = getServletContext();
    		rd = sc.getRequestDispatcher("/Login.jsp");
    		rd.forward(request, response);
    
    	}
    	catch(Throwable theException)
    	{
    		theException.printStackTrace();
    	}
    }
    }
    Metto anche il Bean se può interessare:
    codice:
    package mvc;
    
    public class JavaBean {
    	private String x=null;
    
    	private boolean risultato=false;
    
    public JavaBean() {
    	super();
    }
    
    public boolean getRisultato() {
    	return risultato;
    }
    
    public String getX() {
    	return x;
    }
    
    public void controlla() {
    	 if(x.equals("aa"))
    	 {
    	 	risultato=true;
    	 }
    }
    
    public void setRisultato(boolean newRisultato) {
    	risultato = newRisultato;
    }
    
    public void setX(String newX) {
    	x = newX;
    }
    }
    Grazie

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    A parte
    codice:
    javaBean.controllaCampi();
    che immagino sia
    codice:
    javaBean.controlla();
    il codice a me compila.
    Il classpath e' settato correttamente (Se usi win lo vedi da Pannello Di Controllo > Sistema > Avanzate > Variabili D'Ambiente)? Dovrebbe avere anche il . specificato tra le directory del classpath. Magari posta il valore della variabile.

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    143
    Sul CLASSPATH, Path e roba simile sono sempre andato per tentativi, ci capisco poco a cominciare da cosa sono e che differenza c'è tra le 2. Mi dicevi del classpath ma parlo di entrambe visto che a volte ho messo mano anche a path.

    Le inserisco entrambi.

    Classpath:
    C:\Programmi\Sun\SDK\lib\j2ee.jar;C:\Programmi\Sle epycat Software\Berkeley DB XML 2.2.13\jar\dbxml.jar;C:\Programmi\Sleepycat Software\Berkeley DB XML 2.2.13\jar\db.jar;C:\Programmi\Sleepycat Software\Berkeley DB XML 2.2.13\jar\dbxmlexamples.jar;C:\Programmi\Sleepyca t Software\Berkeley DB XML 2.2.13\jar\dbexamples.jar

    Path:
    C:\Programmi\Sun\SDK\bin;C:\Programmi\Java\jdk1.5. 0\bin;C:\Programmi\Sleepycat Software\Berkeley DB XML 2.2.13\bin;??????????????n???????o?

    Nota1: non avevo mai visto quei punti interrogativi nel path....
    Nota2:si vede che ho lavorato sul Berkeley?

    Per il metodo controlla, si avevo sbagliato, grazie.

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    Quei punti interrogativi nella variabile PATH non credo servano a niente perche' non sono un percorso valido, puoi anche toglierli fino al ; .
    Il problema e' nella variabile classpath (quella che dice al compilatore dove cercare classi e/o librerie referenziate nel codice) che deve contenere anche la directory corrente.
    Modifica come segue:

    Classpath:
    .;C:\Programmi\Sun\SDK\lib\j2ee.jar;C:\Programmi\Sle epycat Software\Berkeley DB XML 2.2.13\jar\dbxml.jar;C:\Programmi\Sleepycat Software\Berkeley DB XML 2.2.13\jar\db.jar;C:\Programmi\Sleepycat Software\Berkeley DB XML 2.2.13\jar\dbxmlexamples.jar;C:\Programmi\Sleepyca t Software\Berkeley DB XML 2.2.13\jar\dbexamples.jar

    Path:
    C:\Programmi\Sun\SDK\bin;C:\Programmi\Java\jdk1.5. 0\bin;C:\Programmi\Sleepycat Software\Berkeley DB XML 2.2.13\bin

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    143
    Si adesso funziona, grazie per l'aiuto.

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.