1 votos

Python en High Sierra "No hay Java runtime presente, solicitando instalación"

Tengo código Python que funciona muy bien en varios otros lugares y "solía" trabajar en mi mac, pero ahora cuando trato de ejecutar mi código como:

python <pythonfile>.py

Me sale un error que dice: No Java runtime present, requesting install.

He probado todas las correcciones del SO y he instalado el último JDK de Java. Lo único que no he hecho es reiniciar ya que estoy en medio de muchas cosas.

¿Alguna idea?

Java JDK

java version "11.0.2" 2018-10-16 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.2+7-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.2+7-LTS, mixed mode)

Python

mbp-1056:site-packages$ python --version
Python 2.7.10
mbp-1056:site-packages$ type -p python
/usr/bin/python

Código

import time
import json

from confluent_kafka import Producer
from hl7_to_dict import hl7_str_to_dict

#Set up my producer
p = Producer({'streams.producer.default.stream': '/demos/hl7demo/hl7stream'})

str_msg=''
with open("hl7_records_random.txt") as f:
    for line in f:
        if line!='\n':
            str_msg=str_msg+line
        else:
            #print(str_msg)
            d = hl7_str_to_dict(str_msg)
            print json.dumps(d)
            print ("\n\n")
            json_hl7 = json.dumps(d)

            p.produce('allMessages', json_hl7)
            p.produce('adt_topic', json_hl7)
            # Or - just do a json.dumps(your_json) instead of str_msg
            p.flush()
            str_msg=''
            time.sleep(5)

0 votos

¿Tal vez utiliza un módulo que necesita Java 8, o tal vez incluso 6?

1 votos

¿Qué tiene este código Python que hace que requiera Java?

0 votos

¿Qué hace python --version espectáculo y type -p python

1voto

CrazyCoder Puntos 103123

Después de mucho dolor y angustia, esto es lo que tienes que hacer:

Puedes seguir las instrucciones aquí: Respuesta de Stack Overflow

O puede seguir las instrucciones aquí: Grito de Oliver Dowling

En resumen, tiene que editar /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Info.plist (o su ruta jdk equivalente, sólo la versión será diferente) y cambiar:

<key>JVMCapabilities</key>
<array>
    <string>CommandLine</string>
</array>

Para:

<key>JVMCapabilities</key>
<array>
    <string>CommandLine</string>
    <string>JNI</string>
    <string>BundledApp</string>
</array>

Entonces tienes que añadir este enlace simbólico:

sudo mkdir -p /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/bundle/Libraries

sudo ln -s /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/jre/lib/server/libjvm.dylib /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/bundle/Libraries/libserver.dylib

Si tiene algún problema, coméntelo.

0 votos

Esto no parece correcto (ni razonable). La petición típica de este aviso es algo que requiere Java de 32 bits, lo que para Python suena muy muy extraño.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X