Skip to content

Commit

Permalink
Add environment variable KOTLIN_JUPYTER_JAVA_EXECUTABLE to set java e…
Browse files Browse the repository at this point in the history
…xecutable for running kernel

Sometimes Java executable is not inside bin subfolder of java_home. It can lead to the issues like #405. This commit allows to avoid this situation by simply setting additional environment variable.

Fixes #405
  • Loading branch information
ileasile committed Mar 31, 2023
1 parent 347b03c commit d349508
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 3 deletions.
3 changes: 3 additions & 0 deletions distrib/kotlin_kernel/env_names.py
Expand Up @@ -15,3 +15,6 @@

# specific JDK location environment variable
KERNEL_JAVA_HOME = "KOTLIN_JUPYTER_JAVA_HOME"

# java executable path. If set, has greater priority than KOTLIN_JUPYTER_JAVA_HOME
KERNEL_JAVA_EXECUTABLE = "KOTLIN_JUPYTER_JAVA_EXECUTABLE"
9 changes: 6 additions & 3 deletions distrib/run_kotlin_kernel/run_kernel.py
Expand Up @@ -55,12 +55,15 @@ def run_kernel_impl(connection_file: str, jar_args_file: str = None, executables
class_path_arg = os.pathsep.join([os.path.join(jars_dir, jar_name) for jar_name in cp])
main_jar_path = os.path.join(jars_dir, main_jar)

java_exec = os.getenv(env_names.KERNEL_JAVA_EXECUTABLE)
java_home = os.getenv(env_names.KERNEL_JAVA_HOME) or os.getenv(env_names.JAVA_HOME)

if java_home is None:
java = "java"
else:
if java_exec is not None:
java = java_exec
elif java_home is not None:
java = os.path.join(java_home, "bin", "java")
else:
java = "java"

jvm_arg_str = os.getenv(env_names.KERNEL_JAVA_OPTS) or os.getenv(env_names.JAVA_OPTS) or ""
extra_args = os.getenv(env_names.KERNEL_EXTRA_JAVA_OPTS)
Expand Down

0 comments on commit d349508

Please sign in to comment.