Este artículo describe el método de llamar a los scripts de Python en los programas Java. Compártelo para su referencia, como sigue:
En el desarrollo del programa, a veces debe llamar a scripts de Python relacionados en programas Java. El siguiente contenido registra los pasos para comenzar y soluciones a posibles problemas.
1. Cree un nuevo proyecto Maven en Eclipse;
2. Después de agregar el siguiente paquete de dependencia al archivo pom.xml, actualice el proyecto Maven;
<Spendency> <MoupRoMID> org.python </groupid> <artifactid> jython </artifactid> <versión> 2.7.0 </versión> </pendency> <spendency> <grupoD> org.python </groupId> <artifactid> jython-standalone </artifactid> <veress> 2.7.0 </versión> </shiFactid> jython-standalone </arfactid> <verly>
3. Escriba el siguiente código de prueba;
importar org.python.util.pythoninterpreter; public class jpythonscript {public static void main (string args []) {pythoninterpreter intérter = new PythonInterpreter (); intérter.exec ("días = ('mod', 'martes', 'wed', 'thu', 'fri', 'sat', 'sol');"); intérter.exec ("Días de impresión [1];"); }}4. Prueba:
Se produce el siguiente error:
Consola: no pudo instalar '': java.nio.charset.unsupportedcharsetException: CP0.
Excepción en el hilo "principal" Importor: no puede importar el módulo del sitio y sus dependencias: no hay módulo llamado Sitio
Determine si los siguientes atributos son correctos:
* sys.path: ['... python // jython // 2.7.0 // lib', '__classpath__', '__pyClasspath __/']
Este atributo podría incluir los directorios incorrectos, como de CPython
*sys.prefix: ***/jython/2.7.0
Este atributo es establecido por la propiedad del sistema Python. Home, aunque puede
a menudo se determina automáticamente la ubicación del archivo jython jar
Puede usar la opción -s o python.import.site = false para no importar el módulo del sitio
5. Resolución de problemas:
El código de refactorización es el siguiente:
import java.util.properties; import org.python.util.pythoninterpreter; public class jpythonscript {public static void main (string args []) {props props = new Properties (); propssput ("python.home", "ruta a la carpeta lib"); props.put ("python.console.encoding", "utf-8"); props.put ("python.security.respectJavaAccessibility", "falso"); propssput ("python.import.site", "falso"); Propiedades preprops = System.getProperties (); Pythoninterpreter.initialize (preprops, accesorios, nueva cadena [0]); Pythoninterpreter intérprete = nuevo PythonInterpreter (); intérter.exec ("días = ('mod', 'martes', 'wed', 'thu', 'fri', 'sat', 'sol');"); intérter.exec ("Días de impresión [1];"); }}6. La compilación fue exitosa.
7. Referencia para resolver problemas:
http://bugs.jython.org/ise2355
Suplemento: la solución al lanzamiento de errores de JPython no puede importar el módulo del sitio
Excepción en el hilo "principal" Importor: no puede importar el módulo del sitio y sus dependencias: no hay módulo llamado Sitio
clase pública jpythonscript {public static void main (string args []) {Properties props = new Properties (); propssput ("python.import.site", "falso"); Propiedades preprops = System.getProperties (); Pythoninterpreter.initialize (preprops, accesorios, nueva cadena [0]); Pythoninterpreter intérprete = nuevo PythonInterpreter (); intérter.exec ("días = ('mod', 'martes', 'wed', 'thu', 'fri', 'sat', 'sol');"); intérter.exec ("Días de impresión [1];"); } // realiza complejo de procesamiento de procesamiento de aceptación de clase <string, object> res = new HashMap <String, Object> (); res.put ("1", "Danny"); res.put ("2", "Fanny"); PyThonInterpreter interpm = new PyThonInterpreter (); interpm.Execfile ("./ Src/com/datreadeal.py"); (Pyfunction) interpm.get ("main", pyfunction.class); map <pyobject, pyobject> tableem = new Hashmap <pyobject, pyobject> (); tablem.put (new PyString ("conf"), pyJavatype.wrapJavaObject (res)); pydicionary pydicionary;Para obtener más contenido relacionado con Java, los lectores interesados en este sitio pueden ver los temas: "Estructura de datos de Java y tutorial de algoritmo", "Resumen de las puntas de nodo de operación Java DOM", "Resumen de los archivos Java y consejos de operación de directorio" y "Summary of Java Cache Operation Tips" ".
Espero que este artículo sea útil para la programación Java de todos.