clj-python / clj-python/libpython-clj

cljbridge fails to create Java VM

Ouverte
#275 5 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Langage dominant
Clojure
Étoiles
1.2k
Forks
74
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

This:
cljbridge.init_jvm(start_repl=True)

results in:
RuntimeError: Failed to create Java VM. Return code = -1

My context

  • MacOS 15.7.2, Python 3.9.6
  • tested with Java temurin@17 & temurin@21 (via brew install)

Error

At commandline:

% python3 -m venv .venv           
% source .venv/bin/activate
(.venv) % export PATH=/Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home/bin:$PATH
(.venv) % export JAVA_HOME=$(/usr/libexec/java_home -v 17)                       
(.venv) % env | egrep 'JAVA|JDK'
JAVA_HOME=/Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home

(.venv) % python3               

At Python REPL:

Python 3.9.6 (default, Oct 17 2025, 17:15:53) 
[Clang 17.0.0 (clang-1700.4.4.1)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from clojurebridge import cljbridge
>>> test_var=10
>>> cljbridge.init_jvm(start_repl=True)
WARNING: Implicit use of clojure.main with options is deprecated, use -M -e (require '[clojure.tools.build.api :as b]'[clojure.string :as str])(let [basis (b/create-basis {:aliases (map keyword [])}) jvm-args (str/join " " (:jvm-opts (:resolve-args basis)))] (println jvm-args))
Unrecognized option: 
Failed to create Java virtual machine.

Traceback (most recent call last):
  File "/Users/foo/projects/myproject/mycodebase/.venv/lib/python3.9/site-packages/javabridge/jutil.py", line 282, in start_thread
    vm.create_mac(args, RQCLS, library_path, libjli_path)
  File "_javabridge.pyx", line 707, in _javabridge.JB_VM.create_mac
RuntimeError: Failed to create Java VM. Return code = -1
Failed to create Java VM
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/foo/projects/myproject/mycodebase/.venv/lib/python3.9/site-packages/clojurebridge/cljbridge.py", line 170, in init_jvm
    javabridge.start_vm(run_headless=True,
  File "/Users/foo/projects/myproject/mycodebase/.venv/lib/python3.9/site-packages/javabridge/jutil.py", line 319, in start_vm
    raise RuntimeError("Failed to start Java VM")
RuntimeError: Failed to start Java VM

cljbridge version: 0.0.8

(.venv) % python3 -m pip install cljbridge
Requirement already satisfied: cljbridge in ./.venv/lib/python3.9/site-packages (0.0.8)

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez par reproduire cljbridge.init_jvm(start_repl=True) avec les versions de macOS et de Java signalées, puis examinez clojurebridge.cljbridge.init_jvm et son appel à javabridge.start_vm. Suivez les arguments de la JVM jusqu’à identifier l’option vide qui provoque « Unrecognized option ». C’est terminé lorsque la configuration Java 17 ou 21 signalée démarre la VM avec succès sans l’erreur.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
java, macos, python
Domaine
backend
Type d'issue
Bug
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
38/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.