Editor EJE e comandi JDK

di il
6 risposte

Editor EJE e comandi JDK

Buongiorno, mi sono letto il regolamento ma sono al mio primo post e spero di fare tutto correttamente.
Sono un tecnico elettronico e programmatore di PLC, negli anni 80 ho cominciato con il Basic, assembler, Lego Mindstorm, Arduino,...
Praticamente provato tutto ma esperto in nulla (sigh).
Veniamo al dunque:
Sto cercando di capire le basi di Java e leggendo qua e la ho deciso di utilizzare la shell con i comandi javac e java (jdk-14) ed aiutarmi con il software EJE versione 3.9.2.
Ho trovato però un problema, una classe compilata e funzionante con EJE non funziona da shell con il comando java mentre la stessa classe compilata con javac funziona perfettamente sia con EJE che con il comando java.
Di seguito la classe (un esempio stupidissimo trovato in rete)

package Cerchio;

import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class Classe1 extends JPanel{
public void paint(Graphics g){
g.drawOval(100, 100, 100, 100);
}

public static void main(String[] args){
JFrame frame= new JFrame("JavaTutorial.net");
frame.getContentPane().add(new Classe1());
frame.setSize(300, 300);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setResizable(false);
}
}

Non si tratta di un problema di path ma "aprendo" le due classi compilate presentano una differenza della prima riga

compilata con EJE: Êþº¾ÿÿ

compilata con javac: Êþº¾

Scusate se sono stato prolisso ma mi sembra un problema un pò complicato e volevo spiegarlo correttamente.
Grazie mille e buon lavoro

6 Risposte

  • Re: Editor EJE e comandi JDK

    Pigna ha scritto:


    "aprendo" le due classi compilate presentano una differenza della prima riga

    compilata con EJE: Êþº¾ÿÿ

    compilata con javac: Êþº¾
    Premesso che "aprire" un file .class con un editor di testo serve a poco/nulla. Perché è vero che puoi sicuramente intravedere delle sequenze di testo intelleggibili ma il .class sostanzialmente è un file "binario". Avrebbe più senso se devi ispezionare il .class con un "hex editor" per fare qualche verifica sulla struttura (a me è già capitato).

    Detto questo, la differenza è dovuta al fatto che nel primo caso (EJE) sicuramente compila con l'attivazione delle feature-preview. Mentre se hai compilato da prompt presumo NON hai passato le opzioni per attivare le feature-preview di Java 14 (perché presumo non le conosci).

    Questo dettaglio direi che non dovrebbe preoccuparti in alcun modo.
  • Re: Editor EJE e comandi JDK

    Grazie andbin
    Effettivamente ho aperto i file con l'editor di testo semplicemente per capire se si trattava di una differenza nei file oppure se il problema era dovuto ad una causa esterna tipo permessi di apertura/lettura del file.
    Il problema fondamentale però rimane: perchè una classe compilata con EJE non funziona con il comando java cartella.nomeclasse?
    Può dipendere dalla versione del compilatore java non compatibile al 100% con EJE? Oppure al comando java devo aggiungerci dei parametri?
    Grazie ancora e saluti
  • Re: Editor EJE e comandi JDK

    Pigna ha scritto:


    perchè una classe compilata con EJE non funziona con il comando java cartella.nomeclasse?
    L'ho detto prima (ma lo dico meglio ora): EJE compila sicuramente con le feature-preview attivate.

    Già da alcune release (dalla 12 se non sbaglio), Oracle inserisce nelle varie versioni delle feature-preview, sono delle nuove funzionalità (tipicamente del linguaggio in sé) che sono fornite in "anteprima". Sono funzionalità complete, cioè pienamente funzionanti ma non sono ancora confermate/permanenti. A seconda dei feedback che Oracle riceve, potrebbe (condizionale d'obbligo!) decidere in una successiva release di RIMUOVERE quelle feature o magari modificarle leggermente.
    Quindi se uno vuole usarle, lo fa come si dice "a suo rischio e pericolo", almeno finché non vengono confermate e rese stabili in una successiva release.

    Le feature-preview vanno attivate esplicitamente in fase di compilazione E in fase di esecuzione (per la compilazione si deve specificare anche la release, perché attiva quelle sue feature).

    Quindi ad esempio:

    javac --enable-preview --release 14 xyz\BlaBla.java

    java --enable-preview xyz.BlaBla

    Quindi le cose sono due:
    - se compili da EJE così come è impostato, usi da prompt --enable-preview al comando java
    - togli da EJE (non so come, non lo conosco..) l'abilitazione delle feature-preview
  • Re: Editor EJE e comandi JDK

    Grande!
    Sei stato chiarissimo, ho aggiunto l' --enable-preview ed il problema si è risolto.
    Non ho ancora trovato un modo per disabilitare le feature-preview su EJE ma se lo scopro lo scrivo nel post se a qualcuno dovesse servire.
    Bene, adesso posso iniziare a sbagliare programmazione con la sicurezza che lo sbaglio è tutto mio.
    Grazie, ti saluto e un in bocca al lupo in questo difficile momento in Italia e nel Mondo.
  • Re: Editor EJE e comandi JDK

    Pigna ha scritto:


    Grande!
    Sei stato chiarissimo, ho aggiunto l' --enable-preview ed il problema si è risolto.
    Non ho ancora trovato un modo per disabilitare le feature-preview su EJE ma se lo scopro lo scrivo nel post se a qualcuno dovesse servire.
    Ok, bene. Comunque dato che stai iniziando con Java, le ultimissime/nuovissime novità di Java potresti anche non notarle/guardarle affatto ... non ti cambierebbe nulla (anzi, se le vedessi forse ti confonderebbero solo di più).

    Pigna ha scritto:


    Grazie, ti saluto e un in bocca al lupo in questo difficile momento in Italia e nel Mondo.
    Grazie, saluti.
  • Re: Editor EJE e comandi JDK

    Tanto per chiudere il post, il software EJE non prevede la possibilità di disabilitare le feature-preview ma l'autore Dott.Claudio De Sio Cesari sta lavorando ad un aggiornamento che probabilmente comprenderà anche tale funzione.
    Saluti a tutti
Devi accedere o registrarti per scrivere nel forum
6 risposte