| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Una aplicación Java-Maven que permite ejecutar scripts Python, con soporte completo para entornos virtuales, gestión de dependencias y una interfaz de línea de comandos intuitiva.
# Verificar Java
java -version
# Verificar Python
python --version
# o
python3 --version
# Verificar Maven (para desarrollo)
mvn -version# Clonar el proyecto via HTTPS
git clone https://github.com/alexdevzz/java-python-executor.git
# o via SSH
git clone git@github.com:alexdevzz/java-python-executor.git
# Compilar con Maven
mvn clean package
# El JAR se creará en: target/java-python-executor.jarjava -jar java-python-executor.jar --helpjava -jar java-python-executor.jar [OPCIONES] script.py [ARGUMENTOS_PYTHON...]java -jar java-python-executor.jar mi_script.pyjava -jar java-python-executor.jar mi_script.py arg1 arg2 arg3java -jar java-python-executor.jar mi_script.py arg1 --venv /ruta/venv# Sin entorno virtual
java -jar java-python-executor.jar horoscope.py aries
# Con entorno virtual
java -jar java-python-executor.jar horoscope.py taurus --venv C:\venvs\horoscope_venv# Crear entorno con dependencias
java -jar java-python-executor.jar --create-env data-science --python 3 --install numpy pandas matplotlib
# Ejecutar análisis
java -jar java-python-executor.jar analizar_datos.py dataset.csv --venv venvs/data-science# Crear entorno para API
java -jar java-python-executor.jar --create-env fastapi-env \
--install fastapi uvicorn
# Ejecutar servidor
java -jar java-python-executor.jar api_server.py \
--venv venvs/fastapi-env --host 0.0.0.0 --port 8080java -jar java-python-executor.jar --list-envsSalida ejemplo:
📋 ENTORNOS VIRTUALES CONFIGURADOS Nombre Ruta Estado ---------------------------------------------------------------------- data-science ./venvs/data-science ✅ VÁLIDO web-dev ./venvs/web-dev ✅ VÁLIDO ml-env ./venvs/ml-env ❌ NO VÁLIDO
# Versión básica
java -jar java-python-executor.jar --create-env mi-entorno
# Con versión específica de Python
java -jar java-python-executor.jar --create-env proyecto37 --python 3.7
# Con paquetes preinstalados
java -jar java-python-executor.jar --create-env data-tools --install numpy pandas scikit-learn jupyter
# Ruta personalizada
java -jar java-python-executor.jar --create-env custom-location --venv /opt/entornos/mi-proyectoLos entornos se validan automáticamente al:
| Opción | Forma larga | Descripción |
|---|---|---|
| -h | --help | Muestra ayuda detallada |
| -v RUTA | --venv RUTA | Usar entorno virtual en RUTA |
| -l | --list-envs | Listar entornos virtuales configurados |
| -c NOMBRE | --create-env NOMBRE | Crear nuevo entorno virtual |
| Opción | Descripción | Ejemplo |
|---|---|---|
| --python VERSION | Versión de Python | --python 3.9 |
| --install PKG... | Paquetes a instalar | --install numpy pandas |
Usa -- para separar argumentos de Java de los de Python:
java -jar app.jar script.py --venv myenv -- --verbose --output=resultado.json
# ↑ args Java ↑ ↑ args Python ↑La aplicación retorna códigos de salida estándar:
| Código | Significado |
|---|---|
| 0 | ✅ Éxito - Script ejecutado correctamente |
| 1 | ❌ Error - Error general de la aplicación |
# Ejecutar y capturar código de salida
java -jar java-python-executor.jar script.py
EXIT_CODE=$?
if [ $EXIT_CODE -eq 0 ]; then
echo "✅ Script ejecutado exitosamente"
elif [ $EXIT_CODE -eq 1 ]; then
echo "❌ Error en la aplicación"
else
echo "🐍 Error en script Python (código: $EXIT_CODE)"
fijava-python-executor/ ├── src/main/java/com/alexdevzz/pythonrunner/ │ ├── cli/ │ │ └── CommandLineArgs.java # Parser de argumentos CLI │ ├── core/ │ │ ├── PythonRunner.java # Ejecutor principal │ │ ├── VirtualEnvManager.java # Gestionador de entornos virtuales │ │ ├── PythonService.java # Servicio con lógica de negocio │ │ └── ExecutionResult.java # Resultados de ejecución │ └── Main.java # Punto de entrada ├── target/ │ └── java-python-executor.jar # JAR ejecutable ├── python-envs.properties # Configuración de entornos (auto) ├── venvs/ # Entornos virtuales (auto) ├── README.md # Documentación (este archivo) └── pom.xml # Configuración Maven
# Verificar instalación
python --version
# Especificar Python 3 explícitamente
# Editar PythonRunner.java línea: command.add("python3");# Verificar estructura del venv
ls -la /ruta/venv/
# Debe contener: bin/python o Scripts/python.exe
# Crear nuevo entorno si está corrupto
java -jar app.jar --create-env nuevo-venv# Dar permisos de ejecución al script
chmod +x script.py
# Verificar permisos del directorio
ls -ld /ruta/script.py# Actualizar pip primero
java -jar app.jar --create-env test --install pip --upgrade
# Instalar paquetes por separado
java -jar app.jar --create-env test --install numpy
java -jar app.jar --create-env test --install pandas# Aumentar memoria Java
java -Xmx2g -jar java-python-executor.jar script.py# Ver información detallada
java -Ddebug=true -jar java-python-executor.jar script.py
# Log verbose
java -Dverbose=true -jar java-python-executor.jar script.py#!/usr/bin/env python3
import sys
print(f"¡Hola desde Python {sys.version}!")
print(f"Argumentos recibidos: {sys.argv[1:]}")
print("Script ejecutado exitosamente")
sys.exit(0)#!/usr/bin/env python3
import sys
import json
from datetime import datetime
def main():
if len(sys.argv) < 2:
print("Uso: python procesador_datos.py <archivo> [--json]")
sys.exit(1)
archivo = sys.argv[1]
formato_json = "--json" in sys.argv
resultado = {
"archivo": archivo,
"timestamp": str(datetime.now()),
"lineas_procesadas": 100,
"estado": "completado"
}
if formato_json:
print(json.dumps(resultado, indent=2))
else:
print(f"Procesado: {archivo}")
print(f"Líneas: {resultado['lineas_procesadas']}")
print(f"Hora: {resultado['timestamp']}")
sys.exit(0)
if __name__ == "__main__":
main()Este proyecto está bajo la Licencia MIT. Ver archivo LICENSE para más detalles.
¿Preguntas o problemas?
¡Feliz ejecución de scripts Python desde Java! 🚀🐍☕
| Back | FazBrowse Home | New Git URL |