Visualizzazione dei risultati da 1 a 10 su 12

Hybrid View

  1. #1
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da jabjoint Visualizza il messaggio
    Mi occorre per trasformare l'equazione passata come Stringa in espressione da calcolare.
    Ah ok. Se ti serve "interpretare" una espressione matematica perché il tuo progetto funziona così e riceve queste espressioni dall'utente, da file, ecc... allora sì, è un conto.

    Nota che esistono sicuramente librerie in "puro" Java che fanno il parsing/calcolo di espressioni matematiche. Non ricordo ora i nomi né in che stato siano ma ne avevo viste diverse in passato. Poi bisogna anche vedere espressioni di quale tipo e complessità, cioè con quali operatori e/o funzioni che devono essere utilizzabili (es. sqrt(x) per dire ).

    Comunque se ti serve il Nashorn, si può integrare. Dal JDK 15 non è più "di serie" con il runtime Java ma è stato portato avanti a sé stante. Basta vedere il progetto ufficiale: https://github.com/openjdk/nashorn/
    E pare sia anche aggiornato, l'ultima versione che vedo sul Maven Central è del Aprile 2022.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  2. #2
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Ah ok. Se ti serve "interpretare" una espressione matematica perché il tuo progetto funziona così e riceve queste espressioni dall'utente, da file, ecc... allora sì, è un conto.

    Nota che esistono sicuramente librerie in "puro" Java che fanno il parsing/calcolo di espressioni matematiche. Non ricordo ora i nomi né in che stato siano ma ne avevo viste diverse in passato. Poi bisogna anche vedere espressioni di quale tipo e complessità, cioè con quali operatori e/o funzioni che devono essere utilizzabili (es. sqrt(x) per dire ).

    Comunque se ti serve il Nashorn, si può integrare. Dal JDK 15 non è più "di serie" con il runtime Java ma è stato portato avanti a sé stante. Basta vedere il progetto ufficiale: https://github.com/openjdk/nashorn/
    E pare sia anche aggiornato, l'ultima versione che vedo sul Maven Central è del Aprile 2022.

    Ho scaricato il file jar, tuttavia non ho la minima idea di come usare le classi...
    jabjoint

  3. #3
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da jabjoint Visualizza il messaggio
    Ho scaricato il file jar, tuttavia non ho la minima idea di come usare le classi...
    Non devi usare niente delle classi specifiche del Nashorn.

    Se si usa Maven basta mettere:
    codice:
            <dependency>
                <groupId>org.openjdk.nashorn</groupId>
                <artifactId>nashorn-core</artifactId>
                <version>15.4</version>
            </dependency>

    O l'equivalente per Gradle. O il jar messo "a mano" nel progetto se non Maven/Gradle.

    L'engine presente nel nashorn-core viene già registrato automaticamente tramite il meccanismo del ServiceLoader. Il jar del nashorn-core infatti contiene il file META-INF/services/javax.script.ScriptEngineFactory.
    E se lo si usa in una applicazione con il JPMS (il module system), il nashorn-core è un "modulo" che dichiara il provides javax.script.ScriptEngineFactory with <classespecifica>.

    Quindi a te basta mettere il jar "in classpath" e poi usare la API di javax.script normalmente come stavi facendo.

    P.S. se intendi usare il Nashorn "standalone" (quello inserito esplicitamente come sopra) nei Java 11~14 dove c'è ANCHE il Nashorn built-in del JDK, devi leggere https://github.com/szegedi/nashorn/w...-Java-versions
    Spiega cosa è possibile fare per distinguere tra i due Nashorn. E questo è il caso in cui può essere utile usare la factory specifica del Nashorn "standalone" come entry point principale.
    Ultima modifica di andbin; 16-09-2022 a 18:47
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.