0

The problem

Hello, I have maven and Java installed at the specified path and my env fully set up like so: environment variables

With my path being : path

java -version runs perfectly but I constently get this error when typing any mvn command :

c:\Program Files\Java>mvn -version
Usage: java [options] <mainclass> [args...]
           (to execute a class)
   or  java [options] -jar <jarfile> [args...]
           (to execute a jar file)
   or  java [options] -m <module>[/<mainclass>] [args...]
       java [options] --module <module>[/<mainclass>] [args...]
           (to execute the main class in a module)
   or  java [options] <sourcefile> [args]
           (to execute a single source-file program)

 Arguments following the main class, source file, -jar <jarfile>,
 -m or --module <module>/<mainclass> are passed as the arguments to
 main class.

 where options include:

    -cp <class search path of directories and zip/jar files>
    -classpath <class search path of directories and zip/jar files>
    --class-path <class search path of directories and zip/jar files>
                  A ; separated list of directories, JAR archives,
                  and ZIP archives to search for class files.
    -p <module path>
    --module-path <module path>...
                  A ; separated list of directories, each directory
                  is a directory of modules.
    --upgrade-module-path <module path>...
                  A ; separated list of directories, each directory
                  is a directory of modules that replace upgradeable
                  modules in the runtime image
    --add-modules <module name>[,<module name>...]
                  root modules to resolve in addition to the initial module.
                  <module name> can also be ALL-DEFAULT, ALL-SYSTEM,
                  ALL-MODULE-PATH.
    --enable-native-access <module name>[,<module name>...]
                  modules that are permitted to perform restricted native operations.
                  <module name> can also be ALL-UNNAMED.
    --list-modules
                  list observable modules and exit
    -d <module name>
    --describe-module <module name>
                  describe a module and exit
    --dry-run     create VM and load main class but do not execute main method.
                  The --dry-run option may be useful for validating the
                  command-line options such as the module system configuration.
    --validate-modules
                  validate all modules and exit
                  The --validate-modules option may be useful for finding
                  conflicts and other errors with modules on the module path.
    -D<name>=<value>
                  set a system property
    -verbose:[class|module|gc|jni]
                  enable verbose output for the given subsystem
    -version      print product version to the error stream and exit
    --version     print product version to the output stream and exit
    -showversion  print product version to the error stream and continue
    --show-version
                  print product version to the output stream and continue
    --show-module-resolution
                  show module resolution output during startup
    -? -h -help
                  print this help message to the error stream
    --help        print this help message to the output stream
    -X            print help on extra options to the error stream
    --help-extra  print help on extra options to the output stream
    -ea[:<packagename>...|:<classname>]
    -enableassertions[:<packagename>...|:<classname>]
                  enable assertions with specified granularity
    -da[:<packagename>...|:<classname>]
    -disableassertions[:<packagename>...|:<classname>]
                  disable assertions with specified granularity
    -esa | -enablesystemassertions
                  enable system assertions
    -dsa | -disablesystemassertions
                  disable system assertions
    -agentlib:<libname>[=<options>]
                  load native agent library <libname>, e.g. -agentlib:jdwp
                  see also -agentlib:jdwp=help
    -agentpath:<pathname>[=<options>]
                  load native agent library by full pathname
    -javaagent:<jarpath>[=<options>]
                  load Java programming language agent, see java.lang.instrument
    -splash:<imagepath>
                  show splash screen with specified image
                  HiDPI scaled images are automatically supported and used
                  if available. The unscaled image filename, e.g. image.ext,
                  should always be passed as the argument to the -splash option.
                  The most appropriate scaled image provided will be picked up
                  automatically.
                  See the SplashScreen API documentation for more information
    @argument files
                  one or more argument files containing options
    -disable-@files
                  prevent further argument file expansion
    --enable-preview
                  allow classes to depend on preview features of this release
To specify an argument for a long option, you can use --<name>=<value> or
--<name> <value>.

' ' n’est pas reconnu en tant que commande interne
ou externe, un programme exécutable ou un fichier de commandes.

c:\Program Files\Java>java -version
java version "17.0.7" 2023-04-18 LTS
Java(TM) SE Runtime Environment (build 17.0.7+8-LTS-224)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.7+8-LTS-224, mixed mode, sharing) 

What I tried

I already tried changing java version, maven version, put java in a no-white-space path folder, I have installed maven at least 100 times by now and the same error persists.

With the same configuration in git bash I don't have any problem but it doesn't work in windows command prompt. mvn -version result in git bash

Trying launching the command directly from C:\Dev\Programmes\apache-maven-3.8.8\bin got the same results such as

%maven_home%\bin\mvn -version

The same configuration works perfectly fine on my other computer.

You should also notice that if maven wasn't correctly set it would probably give me the classic "'mvn' is not recognized", where I actually get "' ' is not recognized" which is really weird.

I really don't understand what is happening, but I really need to make it work in the windows cmd, and this just upset me so much, does anyone has a clue please ? :(

2 Answers2

0

The environment variable MAVEN_HOME was applicable only in maven 1 (further information here). Just define the PATH to the maven binary without using it.

Pedro
  • 692
  • 8
  • 24
  • Thank you for your answer it's very kind of you however it doesn't seem to fix my problem :/ –  Jul 27 '23 at 08:13
0

Okay so I'm very dumb but I finally understood what was the problem :

I'm using MAVEN_OPTS environnement variable to set a local proxy in maven but this variable wasn't correctly set.

It contained -Djdk.http.auth.tunneling.disabledSchemes=''" where it should have been -Djdk.http.auth.tunneling.disabledSchemes="" or -Djdk.http.auth.tunneling.disabledSchemes=''

Fixing this made the error disappeared.