wkgcass / jdkman

Manage multiple JDK instances.
GNU General Public License v2.0
30 stars 4 forks source link

部分程序提示无法找到 javaw.exe #2

Closed xtsteven closed 4 months ago

xtsteven commented 5 months ago

你好,使用jdkman后其他正常,但是 使用 spoon工具时,打开spoon.bat 会提示找不到 javaw.exe image

下面是spoon.bat程序自带的bat脚本的内容:

` @echo off

REM REM REM Pentaho Data Integration REM REM Copyright (C) 2005 - 2022 by Hitachi Vantara : http://www.hitachivantara.com REM REM REM REM Licensed under the Apache License, Version 2.0 (the "License"); REM you may not use this file except in compliance with REM the License. You may obtain a copy of the License at REM REM http://www.apache.org/licenses/LICENSE-2.0 REM REM Unless required by applicable law or agreed to in writing, software REM distributed under the License is distributed on an "AS IS" BASIS, REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. REM See the License for the specific language governing permissions and REM limitations under the License. REM REM *****

setlocal

cd /D %~dp0

REM ** REM Set console window properties REM ** REM TITLE Spoon console REM COLOR F0

:: ** :: Kettle home :: **

if "%KETTLE_DIR%"=="" set KETTLE_DIR=%~dp0 if %KETTLE_DIR:~-1%==\ set KETTLE_DIR=%KETTLE_DIR:~0,-1%

cd %KETTLE_DIR%

REM Special console/debug options when called from SpoonConsole.bat or SpoonDebug.bat if "%SPOON_CONSOLE%"=="1" set PENTAHO_JAVA=java.exe if not "%SPOON_CONSOLE%"=="1" set PENTAHO_JAVA=javaw.exe set IS64BITJAVA=0

call "%~dp0set-pentaho-env.bat"

REM ** REM Platform Specific SWT REM ****

REM The following line is predicated on the 64-bit Sun REM java output from -version which REM looks like this (at the time of this writing): REM REM java version "1.6.0_17" REM Java(TM) SE Runtime Environment (build 1.6.0_17-b04) REM Java HotSpot(TM) 64-Bit Server VM (build 14.3-b01, mixed mode) REM REM Below is a logic to find the directory where java can found. We will REM temporarily change the directory to that folder where we can run java there pushd "%_PENTAHO_JAVA_HOME%" if exist java.exe goto USEJAVAFROMPENTAHOJAVAHOME cd bin if exist java.exe goto USEJAVAFROMPENTAHOJAVAHOME popd pushd "%_PENTAHO_JAVA_HOME%\jre\bin" if exist java.exe goto USEJAVAFROMPATH goto USEJAVAFROMPATH :USEJAVAFROMPENTAHOJAVAHOME FOR /F %%a IN ('.\java.exe -version 2^>^&1^|%windir%\system32\find /C "64-Bit"') DO (SET /a IS64BITJAVA=%%a) FOR /F %%a IN ('.\java.exe -version 2^>^&1^|%windir%\system32\find /C "version ""1.8."') DO (SET /a ISJAVA8=%%a) GOTO CHECK32VS64BITJAVA :USEJAVAFROMPATH FOR /F %%a IN ('java -version 2^>^&1^|%windir%\system32\find /C "64-Bit"') DO (SET /a IS64BITJAVA=%%a) FOR /F %%a IN ('java -version 2^>^&1^|%windir%\system32\find /C "version ""1.8."') DO (SET /a ISJAVA8=%%a) GOTO CHECK32VS64BITJAVA :CHECK32VS64BITJAVA

IF %IS64BITJAVA% == 1 GOTO :USE64

:USE32 REM =========================================== REM Using 32bit Java, so include 32bit SWT Jar REM =========================================== set LIBSPATH=libswt\win32 GOTO :CONTINUE :USE64 REM =========================================== REM Using 64bit java, so include 64bit SWT Jar REM =========================================== set LIBSPATH=libswt\win64 set SWTJAR=..\libswt\win64 :CONTINUE popd

REM ** REM Setup Karaf endorsed libraries directory REM ** set JAVA_ENDORSED_DIRS= set JAVA_LOCALE_COMPAT= set JAVA_ADD_OPENS= IF NOT %ISJAVA8% == 1 GOTO :SKIPENDORSEDJARS

if not "%_PENTAHO_JAVA_HOME%" == "" set JAVA_ENDORSED_DIRS=%_PENTAHO_JAVA_HOME%\jre\lib\endorsed;%_PENTAHO_JAVA_HOME%\lib\endorsed; set JAVA_ENDORSED_DIRS="-Djava.endorsed.dirs=%JAVA_ENDORSED_DIRS%%KETTLE_DIR%\system\karaf\lib\endorsed" GOTO :COLLECTARGUMENTS

:SKIPENDORSEDJARS REM required for Java 11 date/time formatting backwards compatibility set JAVA_LOCALE_COMPAT=-Djava.locale.providers=COMPAT,SPI set JAVA_ADD_OPENS=--add-opens java.base/java.net=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/sun.net.www.protocol.jar=ALL-UNNAMED

:COLLECTARGUMENTS REM ** REM Collect arguments REM **

set _cmdline= :TopArg if %1!==! goto EndArg set _cmdline=%_cmdline% %1 shift goto TopArg :EndArg

REM ** REM Set java runtime options REM Change 2048m to higher values in case you run out of memory REM or set the PENTAHO_DI_JAVA_OPTIONS environment variable REM **

if "%PENTAHO_DI_JAVA_OPTIONS%"=="" set PENTAHO_DI_JAVA_OPTIONS="-Xms1024m" "-Xmx2048m"

set OPT=%OPT% %PENTAHO_DI_JAVA_OPTIONS% "-Djava.library.path=%LIBSPATH%;%HADOOP_HOME%/bin" %JAVA_ENDORSED_DIRS% %JAVA_LOCALE_COMPAT% "-DKETTLE_HOME=%KETTLE_HOME%" "-DKETTLE_REPOSITORY=%KETTLE_REPOSITORY%" "-DKETTLE_USER=%KETTLE_USER%" "-DKETTLE_PASSWORD=%KETTLE_PASSWORD%" "-DKETTLE_PLUGIN_PACKAGES=%KETTLE_PLUGIN_PACKAGES%" "-DKETTLE_LOG_SIZE_LIMIT=%KETTLE_LOG_SIZE_LIMIT%" "-DKETTLE_JNDI_ROOT=%KETTLE_JNDI_ROOT%"

REM REM Run... REM

if %STARTTITLE%!==! SET STARTTITLE="Spoon" REM Eventually call java instead of javaw and do not run in a separate window if not "%SPOON_CONSOLE%"=="1" set SPOON_START_OPTION=start %STARTTITLE%

@echo on %SPOON_START_OPTION% "%_PENTAHO_JAVA%" %JAVA_ADD_OPENS% %OPT% -jar launcher\launcher.jar -lib ..\%LIBSPATH% %_cmdline% @echo off if "%SPOON_PAUSE%"=="1" pause `

wkgcass commented 5 months ago

看起来是因为jdkman没有释放javaw.exe导致的。我再捞一下windows平台下的exe列表吧

wkgcass commented 4 months ago

请使用1.0.4版本