• About
  • Privacy Policy
  • Disclaimer
  • Contact
TomorrowPosT
  • Home
  • Computers
    • Gaming
  • Gear
    • Apple
    • Mobile
  • Microsoft
    • Software & Apps
  • Review
    • Security
  • Tech for Business
  • Tech News
  • News
  • Termini e condizioni
No Result
View All Result
  • Home
  • Computers
    • Gaming
  • Gear
    • Apple
    • Mobile
  • Microsoft
    • Software & Apps
  • Review
    • Security
  • Tech for Business
  • Tech News
  • News
  • Termini e condizioni
No Result
View All Result
TomorrowPost
No Result
View All Result

Usando le librerie Python in Java

Michele by Michele
17/05/2025
Home Software & Apps
Condividi su FacebookCondividi su WhatsappCondividi su Twitter


In pratica, stanno emergendo sempre più casi d’uso in cui entrambe le lingue sono combinate per produrre risultati migliori. Advert esempio, in un’architettura di microservizi:

Tutti i servizi operano in modo indipendente, consentendo l’uso di entrambe le lingue in parallelo senza problemi e interruzioni.

La tabella seguente fornisce una breve panoramica di quando e come Java dovrebbe essere combinato con Python.

situazione raccomandazione

Molti dati

✅ Python + Java

Prestazione

✅ Java come base

Ki/ml

✅ Python per i modelli

Architettura

✅ microservizi

Ecco alcuni esempi pratici per combinare Python e Java:

  • Analisi dei dati e apprendimento automatico: Biblioteche come Numpy, Panda, Tensorflow o Scikit-Be taught sono in testa a Python.
  • Prototipazione rapida: Python consente uno sviluppo più rapido di prototipi, che possono successivamente essere integrati in Java.
  • Riutilizzo delle basi di codice esistenti: Le aziende spesso utilizzano moduli Python esistenti integrati in nuove applicazioni Java.

Approcci per integrare Python in Java

Jython

Jython è un’implementazione di Python che funziona sulla Java Digital Machine (JVM). Ciò consente di utilizzare i moduli Python direttamente in Java.

Vantaggi di Jython:

  • Integrazione senza soluzione di continuità con JVM
  • Accesso diretto alle classi Java da Python e viceversa

Svantaggi di Jython:

  • Supporta solo Python 2.x (nessun supporto per Python 3.x)
  • Molte biblioteche moderne non funzionano perché richiedono Python 3.x

ProcessBuilder (Exterior Script Execution)

Un modo semplice ma efficace per utilizzare le librerie Python in Java è eseguendo script di Python come processi esterni.

Vantaggi di ProcessBuilder:

  • Supporto completo per tutte le versioni e le biblioteche Python
  • Non ci sono dipendenze da ponti o API speciali

Svantaggi di ProcessBuilder:

  • Sovraccarico di prestazioni a causa dell’inizio del processo
  • La gestione degli errori è più complessa

Py4J

Py4j è un altro ponte tra Python e Java. Originariamente sviluppato per Apache Spark, consente a Python di manipolare gli oggetti Java ed eseguire i metodi Java.

Vantaggi di PY4J:

  • Leggero e facile da integrare
  • Supporta la comunicazione bidirezionale

Svantaggi di Py4J:

  • C’è più sovraccarico durante la configurazione
  • Più adatto agli scenari in cui Python è il conducente

Various: Biblioteche Java come sostituzione per Python

Se l’integrazione è troppo complicata, molte potenti librerie Java offrono funzionalità simili alle biblioteche Python:

Biblioteca Python Alternativa Java Caso d’uso
Numpy ND4J, Apache Commons Math Calcolo
Panda Tablesaw, freccia apache Analisi dei dati
Scikit-learn Weka, deeplearning4j Mml
Tensorflow Tensorflow per Java, dl4j Apprendimento profondo
Matplotlib/Seaborn Jfreechart, xchart Visualizzazione dei dati

Esempi di Jython per un progetto Maven

Devi includere la dipendenza da jython nel tuo pom.xml Per usare Jython in un progetto Maven. L’ultima versione di Jython può essere scaricata da https://www.jython.org/obtain e incluso come file jar. In alternativa, la libreria può essere integrata tramite la gestione delle dipendenze. Per fare ciò, il file POM del progetto deve essere esteso come segue, utilizzando la versione 2.7.2:


    org.python
    jython-standalone
    2.7.2

Creeremo un semplice esempio in cui uno script Python esegue un calcolo e il risultato viene elaborato ulteriormente in Java.

Codice Python (in linea all’interno del codice Java):

import org.python.util.PythonInterpreter;
import org.python.core.PyObject;

public class JythonExample {
    public static void foremost(String() args) {
        PythonInterpreter interpreter = new PythonInterpreter();
		interpreter.exec(
            "def add_numbers(a, b):n" +
            "    return a + bn" +
            "n" +
            "outcome = add_numbers(10, 20)"
        );

        PyObject outcome = interpreter.get("outcome");
		int sum = outcome.asInt();
        System.out.println("Consequence: " + sum);
    }
}

In questo esempio, l’interprete di Python viene inizializzato per la prima volta:

PythonInterpreter interpreter = new PythonInterpreter();

E quindi il codice Python viene eseguito direttamente all’interno della classe Java:

interpreter.exec(
            "def add_numbers(a, b):n" +
            "    return a + bn" +
            "n" +
            "outcome = add_numbers(10, 20)"
        );

Qui, una semplice funzione Python add_numbers è definito, che aggiunge due numeri. La funzione viene chiamata con i valori 10 e 20 e il risultato è memorizzato nella variabile outcome.

Il risultato viene recuperato con il seguente comando:

PyObject outcome = interpreter.get("outcome");
int sum = outcome.asInt();

Con interpreter.get("outcome")il risultato dello script Python viene recuperato e convertito in una variabile Java (INT).

Il risultato può, advert esempio, essere emesso come segue:

System.out.println("Consequence: " + sum);

Le variabili Java possono anche essere passate alla sceneggiatura di Python. Ecco un esempio esteso:

import org.python.util.PythonInterpreter;
import org.python.core.PyInteger;

public class JythonExampleWithInput {
    public static void foremost(String() args) {
        PythonInterpreter interpreter = new PythonInterpreter();

       
        int a = 15;
        int b = 25;

        interpreter.set("a", new PyInteger(a));
        interpreter.set("b", new PyInteger(b));

        interpreter.exec(
            "def multiply_numbers(x, y):n" +
            "    return x * yn" +
            "n" +
            "outcome = multiply_numbers(a, b)"
        );

        int outcome = interpreter.get("outcome").asInt();
        System.out.println("Consequence: " + outcome);
    }
}

Nel prossimo esempio, un file python esterno chiamato script.py è inserito nel file src/foremost/assets Listing del progetto Maven.

my-maven-project/
│
├── pom.xml
│
├── src
│   ├── foremost
│   │   ├── java
│   │   │   └── your/package deal/foremost.java
│   │   └── assets
│       └── script.py  
│
└── goal/

Perché src/foremost/assets?

  • Tutto nel src/foremost/assets La listing viene copiata a goal/lessons cartella quando il progetto è costruito
  • È possibile caricare questi file in fase di esecuzione utilizzando il ClassLoader

Questa è una conference Maven comunemente utilizzata nei progetti Java per archiviare risorse non java come file di configurazione, proprietà, XML, JSON o altri dati statici necessari in fase di esecuzione.

Lo script è definito come segue:

def add_numbers(a, b):
    return a + b
outcome = add_numbers(5, 15)
print("Consequence: {}".format(outcome))

La classe Java corrispondente è definita come segue:

import org.python.util.PythonInterpreter;
import java.io.FileReader;
import java.io.IOException;

public class JythonExternalScriptExample {
    public static void foremost(String() args) {
        
        PythonInterpreter interpreter = new PythonInterpreter();
        strive {
            FileReader pythonScript = new FileReader("script.py");
            interpreter.execfile(pythonScript);
            pythonScript.shut();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

Inizializzazione dell’interprete:

PythonInterpreter interpreter = new PythonInterpreter();

Caricamento dello script esterno:

FileReader pythonScript = new FileReader("script.py");

Esecuzione dello script:

interpreter.execfile(pythonScript);

Chiusura del fileReader:

Conclusione

Con Jython, puoi facilmente eseguire script di Python esterni da Java. L’integrazione funziona bene per script semplici, soprattutto quando si passano i parametri da Java a Python. Tuttavia, per le biblioteche Python 3 più complesse, è necessario considerare different come PY4J o eseguire direttamente i processi Python utilizzando ProcessBuilder.

Jython offre una soluzione semplice ma obsoleta, mentre Py4J e JPype creano ponti più flessibili tra le due lingue. Tuttavia, l’esecuzione di script di Python esterni è il metodo più semplice in molti casi.

Per i progetti a lungo termine o quando le prestazioni sono una grande preoccupazione, potrebbe valere la pena cercare different Java che offrano supporto nativo e possano essere più facilmente integrati nei progetti Java esistenti.

Tags: JavalibreriePythonusando
Michele

Michele

Next Post
Come diventare un esperto di Mie e mostrare la scuola 2025-2026

Come diventare un esperto di Mie e mostrare la scuola 2025-2026

Lascia un commento Annulla risposta

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Recommended.

GTA 6 ha ritardato fino al 2026, ma almeno abbiamo una knowledge di uscita ora

GTA 6 ha ritardato fino al 2026, ma almeno abbiamo una knowledge di uscita ora

02/05/2025
La guida del mondo reale ai microservizi guidati dagli eventi

La guida del mondo reale ai microservizi guidati dagli eventi

27/03/2025

Trending.

Sistemi distribuiti 101

Sistemi distribuiti 101

18/04/2025
Come spostare gli acquisti digitali tra due ID

iPhone 16 viene finalmente lanciato in Indonesia dopo un lungo divieto

14/04/2025
Pacchetti npm canaglia imitare l’API bot telegramma per piantare backoors ssh su sistemi Linux

Pacchetti npm canaglia imitare l’API bot telegramma per piantare backoors ssh su sistemi Linux

20/04/2025
Starcraft 2 hacker che costringono i giocatori a guardare video di tiro

Starcraft 2 hacker che costringono i giocatori a guardare video di tiro

23/04/2025
Distribuzione di piattaforme di intelligenza artificiale nell’istruzione superiore per risultati migliori

Distribuzione di piattaforme di intelligenza artificiale nell’istruzione superiore per risultati migliori

24/04/2025

TomorrowPost

Welcome to Tomorrow Post – your trusted source for the latest in computers, gaming, tech gear, Microsoft, software, cybersecurity, and much more! Our mission is simple: to provide technology enthusiasts, professionals, and business leaders with accurate, insightful, and up-to-date information that helps them navigate the ever-evolving world of technology.

Categorie

  • Apple
  • Computers
  • Gaming
  • Gear
  • Microsoft
  • Mobile
  • News
  • Review
  • Security
  • Software & Apps
  • Tech for Business
  • Tech News

Recent News

I fan di Fortnite non possono credere alle cose selvagge che Darth Vader sta dicendo

I fan di Fortnite non possono credere alle cose selvagge che Darth Vader sta dicendo

17/05/2025

Geometric Future presenta nuovi casi e accessori per PC su Computex 2025

17/05/2025
  • About
  • Privacy Policy
  • Disclaimer
  • Contact

© 2025- https://tomorrowpost.net- All Rights Reserved

No Result
View All Result
  • Home
  • Computers
    • Gaming
  • Gear
    • Apple
    • Mobile
  • Microsoft
    • Software & Apps
  • Review
    • Security
  • Tech for Business
  • Tech News
  • News
  • Termini e condizioni

© 2025- https://tomorrowpost.net- All Rights Reserved