Richard Zowalla created OPENNLP-1527:
----------------------------------------

             Summary: OpenNLP CLI does not start on Windows
                 Key: OPENNLP-1527
                 URL: https://issues.apache.org/jira/browse/OPENNLP-1527
             Project: OpenNLP
          Issue Type: Bug
    Affects Versions: 2.3.1
            Reporter: Richard Zowalla
            Assignee: Richard Zowalla
             Fix For: 2.3.2


Windows fails to load the OpenNLP. This is reported in 
https://stackoverflow.com/questions/77615264/why-does-opennlp-cli-output-slf4j-failed-to-load-class-org-slf4j-impl-staticl

The reason for this behaviour is, that the BAT script doesn't add libs to the 
classpath (at all). Therefore, it will fail to load the logger impl (and all 
other classes as well).

To fix, we need to append the classpath similar to the linux scripts:


{code:java}
@ECHO off

REM #   Licensed to the Apache Software Foundation (ASF) under one
REM #   or more contributor license agreements.  See the NOTICE file
REM #   distributed with this work for additional information
REM #   regarding copyright ownership.  The ASF licenses this file
REM #   to you under the Apache License, Version 2.0 (the
REM #   "License"); you may not use this file except in compliance
REM #   with 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,
REM #   software distributed under the License is distributed on an
REM #   #  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
REM #   KIND, either express or implied.  See the License for the
REM #   specific language governing permissions and limitations
REM #   under the License.

REM # Note:  Do not output anything in this script file, any output
REM #        may be inadvertantly placed in any output files if
REM #        output redirection is used.
SETLOCAL

IF "%JAVA_CMD%" == "" (
        IF "%JAVA_HOME%" == "" (
                SET JAVA_CMD=java 
        ) ELSE (
                REM # Keep JAVA_HOME to short-name without spaces
                FOR %%A IN ("%JAVA_HOME%") DO SET JAVA_CMD=%%~sfA\bin\java
        )
)

REM remove HEAP variable
SET HEAP=
IF not "%JAVA_HEAP%" == "" (
        SET HEAP="-Xmx%JAVA_HEAP%"
)

REM #  Should work with Windows XP and greater.  If not, specify the path to 
where it is installed.
IF "%OPENNLP_HOME%" == "" (
        SET OPENNLP_HOME=%~sp0..
) ELSE (
        REM # Keep OPENNLP_HOME to short-name without spaces
        FOR %%A IN ("%OPENNLP_HOME%") DO SET OPENNLP_HOME=%%~sfA
)

echo Environment
echo JAVA_HOME=%JAVA_HOME%
echo OPENNLP_HOME=%OPENNLP_HOME% 

REM Iterate over JAR files in the lib directory and build the classpath
SET CLASSPATH="%OPENNLP_HOME%\lib\*"

echo CLASSPATH=%CLASSPATH%

%JAVA_CMD% %HEAP% "-Dlog4j.configurationFile=%OPENNLP_HOME%\conf\log4j2.xml" 
-cp %CLASSPATH% opennlp.tools.cmdline.CLI %*

ENDLOCAL

{code}




--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to