Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [JAVA] Richiamare SecondaClasse.classe e compilare file MainClass.class

    Sera, come da codice, dovrei richiamare una classe tramite pulsante.
    Non mi fa compilare infatti la classe perché non possono essercene due pubbliche, ma privata non la legge, dunque tento di separare file. Se avete soluzioni più effficienti sono ben venute.
    public class MainClass {
    public static void main(String[] args) {
    openPannello();
    }
    private static boolean openPannello() {

    JFrame f = new JFrame();
    JPanel p = new JPanel();

    JButton b = new JButton(“esegui”);

    b.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {

    //Esegui metodo di una 2° classe compilata in un file SecondClass.class
    SecondClass sc = new SecondClass();
    sc.run();

    }
    });
    }
    }
    jabjoint

  2. #2
    jar -fu MainClass.jar -e SecondClass.class –main-class=SecondClass


    SecondClass.class : no such file or directory
    --main-class= SecondClass : no such file or directory


    jar -fc MainClass.jar MainClass.java SecondClass.java -e MainClass.class –main-class= MainClass


    SecondClass.class : no such file or directory
    --main-class= SecondClass : no such file or directory

    Tutti i file sono nella stessa cartella e richiamati da questa.
    jabjoint

  3. #3
    Questa riga la esegue: jar -fc MainClass.jar MainClass.java SecondClass.java
    Ma poi come fa a capire la classe principale? Se lo eseguo da Ubuntu infatti non parte.
    jabjoint

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Tralasciando lo stile di programmazione, credo che ci siano diversi problemi di struttura.

    Pesco dalla memoria:
    - se non ricordo male, devi strutturare le tue classi in package(s) per poter incapsularle in un jar (comunque una buona pratica, al di là del jar o non jar)
    - l'entry point (Main-Class) dev'essere specificato nel MANIFEST che fornisci all'atto della creazione del JAR altrimenti jar crea il MANIFEST di default, che contiene solo versione del MANIFEST e del compilatore.

    In altre parole:
    - dichiara package.
    - ricompila con javac

    costruisci un MANIFEST minimale, i.e.
    codice:
    Main-Class: tuopackage.MainClass
    *riga vuota*
    *riga vuota*
    Nota: non serve l'estensione .class e dai un paio di invii dopo per lasciare un paio di righe vuote alla fine del file.

    ricrea il tuo jar specificando anche il manifest.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  5. #5
    Quote Originariamente inviata da Andrea1979 Visualizza il messaggio
    Tralasciando lo stile di programmazione, credo che ci siano diversi problemi di struttura.

    Pesco dalla memoria:
    - se non ricordo male, devi strutturare le tue classi in package(s) per poter incapsularle in un jar (comunque una buona pratica, al di là del jar o non jar)
    - l'entry point (Main-Class) dev'essere specificato nel MANIFEST che fornisci all'atto della creazione del JAR altrimenti jar crea il MANIFEST di default, che contiene solo versione del MANIFEST e del compilatore.

    In altre parole:
    - dichiara package.
    - ricompila con javac

    costruisci un MANIFEST minimale, i.e.
    codice:
    Main-Class: tuopackage.MainClass
    *riga vuota*
    *riga vuota*
    Nota: non serve l'estensione .class e dai un paio di invii dopo per lasciare un paio di righe vuote alla fine del file.

    ricrea il tuo jar specificando anche il manifest.
    OK, molto chiaro, tenterà appena riesco, grazie mille.
    jabjoint

Tag per questa discussione

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 © 2020 vBulletin Solutions, Inc. All rights reserved.