Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    883

    compilare un file in java

    ho fatto un semplice text editor in java (swing) con le funzioni di nuovo salva copia taglia e incolla
    a questo editor ho aggiunto un altro pulsante
    Il pulsante di COMPILE
    quando uno lo preme dovrebbe succedere che il testo scritto in questo editor venga compilato con il compilatore java

    non so cosa bisogna scrivere nell'action di questo bottone
    in particolare se supponiamo che il fiel da compilare sia stato salvato nella directory
    c:\mia directory\fileJava\pippo.java

    il programma, alla proessine del pulsante COMPILE, dovrebbe eseguire il seguente comando

    javac c:\mia directory\fileJava\pippo.java

    come faccio a fare ciò?

  2. #2
    Utente di HTML.it L'avatar di Angelo1974
    Registrato dal
    Feb 2003
    Messaggi
    1,107
    Forse questo esempio dovrebbe fare al caso tuo.. fammi sapere se ti è stato utilie:
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import java.io.*;
    import java.lang.reflect.*;

    public class RunIt extends JFrame {
    JPanel contentPane;
    JScrollPane jScrollPane1 = new JScrollPane();
    JTextArea source = new JTextArea();
    JPanel jPanel1 = new JPanel();
    JLabel classNameLabel = new JLabel("Class Name");
    GridLayout gridLayout1 = new GridLayout(2,1);
    JTextField className = new JTextField();
    JButton compile = new JButton("Go");
    Font boldFont = new java.awt.Font("SansSerif", 1, 11);

    public RunIt() {
    super("Editor");
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    contentPane = (JPanel) this.getContentPane();
    this.setSize(400, 300);
    classNameLabel.setFont(boldFont);
    jPanel1.setLayout(gridLayout1);
    compile.setFont(boldFont);
    compile.setForeground(Color.black);
    compile.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
    try {
    doCompile();
    } catch (Exception ex) {
    System.err.println(
    "Error during save/compile: " + ex);
    ex.printStackTrace();
    }
    }
    });
    contentPane.add(jScrollPane1, BorderLayout.CENTER);
    contentPane.add(jPanel1, BorderLayout.NORTH);
    jPanel1.add(classNameLabel);
    jPanel1.add(className);
    jScrollPane1.getViewport().add(source);
    contentPane.add(compile, BorderLayout.SOUTH);
    }
    public static void main(String[] args) {
    Frame frame = new RunIt();
    // Center screen
    Dimension screenSize =
    Toolkit.getDefaultToolkit().getScreenSize();
    Dimension frameSize = frame.getSize();
    if (frameSize.height > screenSize.height) {
    frameSize.height = screenSize.height;
    }
    if (frameSize.width > screenSize.width) {
    frameSize.width = screenSize.width;
    }
    frame.setLocation(
    (screenSize.width - frameSize.width) / 2,
    (screenSize.height - frameSize.height) / 2);
    frame.show();
    }
    private void doCompile() throws Exception {
    // write source to file
    String sourceFile = className.getText() + ".java";
    FileWriter fw = new FileWriter(sourceFile);
    fw.write(source.getText());
    fw.close();
    // compile it
    int compileReturnCode =
    com.sun.tools.javac.Main.compile(
    new String[] {sourceFile});
    if (compileReturnCode == 0) {
    // run it

    Object objectParameters[] = {new String[]{}};
    Class classParameters[] =
    {objectParameters[0].getClass()};
    Class aClass =
    Class.forName(className.getText());
    Object instance = aClass.newInstance();
    Method theMethod = aClass.getDeclaredMethod(
    "main", classParameters);
    theMethod.invoke(instance, objectParameters);
    }
    }
    Ciao :mavieni:
    Se vuoi trovare l'arcobaleno, devi sopportare la pioggia

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    883
    Delle righe che mi hai scritto forse servono queste

    // compile it
    int compileReturnCode =
    com.sun.tools.javac.Main.compile(
    new String[] {sourceFile});
    if (compileReturnCode == 0) {
    // run it

    ho una domanda
    Da dove scarico il package com.sun.tools.javac.Main.compile?

  4. #4
    Utente di HTML.it L'avatar di Angelo1974
    Registrato dal
    Feb 2003
    Messaggi
    1,107
    Io non l'ho scaricato... è presente nel j2sdk1.4.1_02 se uso questa versione dovresti averlo anche tu.... ciao
    Se vuoi trovare l'arcobaleno, devi sopportare la pioggia

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.