diff --git a/package.json b/package.json index 6acf73f2..4c6bbced 100644 --- a/package.json +++ b/package.json @@ -62,6 +62,23 @@ "description": "Saved configs for", "default": {}, "additionalProperties": true + }, + "vscode-db2i.jobJava": { + "type": "string", + "description": "Java version for Server Component", + "default": "/QOpenSys/QIBM/ProdData/JavaVM/jdk80/64bit/bin/java", + "enum": [ + "/QOpenSys/QIBM/ProdData/JavaVM/jdk80/64bit/bin/java", + "/QOpenSys/QIBM/ProdData/JavaVM/jdk11/64bit/bin/java", + "/QOpenSys/QIBM/ProdData/JavaVM/jdk17/64bit/bin/java", + "/QOpenSys/QIBM/ProdData/JavaVM/jdk21/64bit/bin/java" + ], + "enumDescriptions": [ + "Java 8 (system default)", + "Java 11", + "Java 17", + "Java 21" + ] } } }, diff --git a/src/connection/serverComponent.ts b/src/connection/serverComponent.ts index a55fd42a..4ce9605d 100644 --- a/src/connection/serverComponent.ts +++ b/src/connection/serverComponent.ts @@ -10,8 +10,10 @@ import { SERVER_VERSION_FILE } from "./SCVersion"; import IBMi from "@halcyontech/vscode-ibmi-types/api/IBMi"; import * as Crypto from 'crypto'; import { readFileSync } from "fs"; +import Configuration from "../configuration"; const ExecutablePathDir = `$HOME/.vscode/`; +const DEFAULT_JAVA_EIGHT = `/QOpenSys/QIBM/ProdData/JavaVM/jdk80/64bit/bin/java`; export enum UpdateStatus { FAILED, @@ -50,8 +52,10 @@ export class ServerComponent { static getInitCommand(): string | undefined { const path = this.getComponentPath(); + const jvmVersion = Configuration.get(`jobJava`) || DEFAULT_JAVA_EIGHT; + if (path) { - return `/QOpenSys/QIBM/ProdData/JavaVM/jdk80/64bit/bin/java -Dos400.stdio.convert=N -jar ${path} --single` + return `${jvmVersion} -Dos400.stdio.convert=N -jar ${path} --single` } } diff --git a/src/contributes.json b/src/contributes.json index 7368a32f..c6a60d94 100644 --- a/src/contributes.json +++ b/src/contributes.json @@ -21,6 +21,23 @@ "description": "Saved configs for", "default": {}, "additionalProperties": true + }, + "vscode-db2i.jobJava": { + "type": "string", + "description": "Java version for Server Component", + "default": "/QOpenSys/QIBM/ProdData/JavaVM/jdk80/64bit/bin/java", + "enum": [ + "/QOpenSys/QIBM/ProdData/JavaVM/jdk80/64bit/bin/java", + "/QOpenSys/QIBM/ProdData/JavaVM/jdk11/64bit/bin/java", + "/QOpenSys/QIBM/ProdData/JavaVM/jdk17/64bit/bin/java", + "/QOpenSys/QIBM/ProdData/JavaVM/jdk21/64bit/bin/java" + ], + "enumDescriptions": [ + "Java 8 (system default)", + "Java 11", + "Java 17", + "Java 21" + ] } } },