Package

di il
9 risposte

Package

Salve ragazzi è sicuramente una fesseria ma non riesco a compilare questo codice:
import java.util.*;

package p1;
class MyString {
   String msg;
   MyString(String msg) {
      this.msg = msg;
   }
}

package p1;
public class Test2 {
public static void main (String [] args) {
      System.out.println("Hello " + new StringBuilder("Java SE 8"));
      System.out.println("Hello " + new MyString("Java SE 8"));
}
}
mi sembra che sta nelle righe dove cè "package p1" grazie in anticipo per la risposta

9 Risposte

  • Re: Package

    maracaibo25 ha scritto:


    Salve ragazzi è sicuramente una fesseria ma non riesco a compilare questo codice:
    Compilarlo .. come? Da prompt dei comandi con il javac del JDK?

    Ma vedo una questione innanzitutto: la dichiarazione di package va sempre PRIMA degli import. Il MyString è sbagliato.

    Comunque, i package si devono sempre "riflettere" nella struttura delle directory.
    Quindi dopo aver corretto MyString, la struttura deve essere (esempio per Windows):

    C:\blablabla\p1\MyString.java
    C:\blablabla\p1\Test2.java

    Stando come directory "corrente" in C:\blablabla (che può essere qualunque directory), NON in p1, dai:

    javac p1\Test2.java

    poi per lanciare:

    java p1.Test2

    Ma occhio, non ti aspettare qualcosa di utile nel secondo println, perché MyString non ridefinisce il toString().
  • Re: Package

    andbin ha scritto:


    maracaibo25 ha scritto:


    Salve ragazzi è sicuramente una fesseria ma non riesco a compilare questo codice:
    Compilarlo .. come? Da prompt dei comandi con il javac del JDK?

    Ma vedo una questione innanzitutto: la dichiarazione di package va sempre PRIMA degli import. Il MyString è sbagliato.

    Comunque, i package si devono sempre "riflettere" nella struttura delle directory.
    Quindi dopo aver corretto MyString, la struttura deve essere (esempio per Windows):

    C:\blablabla\p1\MyString.java
    C:\blablabla\p1\Test2.java

    Stando come directory "corrente" in C:\blablabla (che può essere qualunque directory), NON in p1, dai:

    javac p1\Test2.java

    poi per lanciare:

    java p1.Test2

    Ma occhio, non ti aspettare qualcosa di utile nel secondo println, perché MyString non ridefinisce il toString().
    ok grazie andbin
    Il MyString è sbagliato.
    si lo so è proprio il codice che è cosi
  • Re: Package

    maracaibo25 ha scritto:


    andbin ha scritto:


    maracaibo25 ha scritto:


    Salve ragazzi è sicuramente una fesseria ma non riesco a compilare questo codice:
    Compilarlo .. come? Da prompt dei comandi con il javac del JDK?

    Ma vedo una questione innanzitutto: la dichiarazione di package va sempre PRIMA degli import. Il MyString è sbagliato.

    Comunque, i package si devono sempre "riflettere" nella struttura delle directory.
    Quindi dopo aver corretto MyString, la struttura deve essere (esempio per Windows):

    C:\blablabla\p1\MyString.java
    C:\blablabla\p1\Test2.java

    Stando come directory "corrente" in C:\blablabla (che può essere qualunque directory), NON in p1, dai:

    javac p1\Test2.java

    poi per lanciare:

    java p1.Test2

    Ma occhio, non ti aspettare qualcosa di utile nel secondo println, perché MyString non ridefinisce il toString().
    ok grazie andbin
    Il MyString è sbagliato.
    si lo so è proprio il codice che è cosi
    no perdonami andbin mi sono sbagliato non va,l'avevo messo come commento il secondo package cosi:" \\package p1; ",ma riportando il codice come era in origine non compila e mi da sempre errore nel secondo package appunto,se tipuo essere utile il codice sta in una cartella chiamata Main
  • Re: Package

    maracaibo25 ha scritto:


    no perdonami andbin mi sono sbagliato non va,l'avevo messo come commento il secondo package cosi:" \\package p1; ",ma riportando il codice come era in origine non compila e mi da sempre errore nel secondo package appunto,se tipuo essere utile il codice sta in una cartella chiamata Main
    Se hai es. un sorgente Prova.java che dichiara package com.esempio, allora tale sorgente DEVE stare in un percorso com\esempio\Prova.java
    Poi quale sia la directory X che contiene la "com", NON importa. Ma questa directory X è quella dove si deve stare per poter lanciare javac com\esempio\Prova.java
  • Re: Package

    andbin ha scritto:


    Se hai es. un sorgente Prova.java che dichiara package com.esempio, allora tale sorgente DEVE stare in un percorso com\esempio\Prova.java
    Poi quale sia la directory X che contiene la "com", NON importa. Ma questa directory X è quella dove si deve stare per poter lanciare javac com\esempio\Prova.java
    ok ho fatto come dici però mi da errore qua
    }
    
    package p1;  <--- QUA
    public class Test2 {
  • Re: Package

    maracaibo25 ha scritto:


    ok ho fatto come dici però mi da errore qua
    }
    
    package p1;  <--- QUA
    public class Test2 {
    In un sorgente Java puoi mettere più definizioni di classi/interfacce/ecc... Ma la dichiarazione di package può stare solo una volta all'inizio nel sorgente, poi seguono gli eventuali import e poi le classi ecc...
  • Re: Package

    andbin ha scritto:


    maracaibo25 ha scritto:


    ok ho fatto come dici però mi da errore qua
    }
    
    package p1;  <--- QUA
    public class Test2 {
    In un sorgente Java puoi mettere più definizioni di classi/interfacce/ecc... Ma la dichiarazione di package può stare solo una volta all'inizio nel sorgente, poi seguono gli eventuali import e poi le classi ecc...
    ok perfetto andbin però adesso in esecuzione mi da "impossibile trovare o caricare la classe principale" mi sembra la prima volta che mi capita questo errore
  • Re: Package

    maracaibo25 ha scritto:


    ok perfetto andbin però adesso in esecuzione mi da "impossibile trovare o caricare la classe principale" mi sembra la prima volta che mi capita questo errore
    L'ho scritto nella prima risposta come compilare e poi lanciare, supponendo un package "p1".
  • Re: Package

    andbin ha scritto:


    L'ho scritto nella prima risposta come compilare e poi lanciare, supponendo un package "p1".
    ok grazie mille andbin adesso va
Devi accedere o registrarti per scrivere nel forum
9 risposte