Uploaded image for project: 'OpenNLP'
  1. OpenNLP
  2. OPENNLP-1527

OpenNLP CLI does not start on Windows

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 2.2.0, 2.3.0, 2.3.1
    • 2.3.2
    • Command Line Interface
    • None
    • Windows

    Description

      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:

      @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
      
      

      Attachments

        Activity

          People

            rzo1 Richard Zowalla
            rzo1 Richard Zowalla
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: