Windows 8 x64上的Maven 3.0.4错误:用法:java class

这是我在这个论坛上的第一篇文章。 我有Maven 3的问题。操作系统:Windows 8 Professional RTM。

如果我运行任何maven命令(无论),我总是得到以下答案:

用法:java [-options] class [args …](执行类)或java [-options] -jar jarfile [args …](执行jar文件)

选项包括:-serverselect“服务器”VM -hotspot是“服务器”VM的同义词[已弃用]默认VM是服务器。

-cp <class search path of directories and zip/jar files> -classpath <class search path of directories and zip/jar files> A ; separated list of directories, JAR archives, and ZIP archives to search for class files. -D<name>=<value> set a system property -verbose[:class|gc|jni] enable verbose output -version print product version and exit -version:<value> require the specified version to run -showversion print product version and continue -jre-restrict-search | -jre-no-restrict-search include/exclude user private JREs in the version search -? -help print this help message -X print help on non-standard options -ea[:<packagename>...|:<classname>] -enableassertions[:<packagename>...|:<classname>] enable assertions -da[:<packagename>...|:<classname>] -disableassertions[:<packagename>...|:<classname>] disable assertions -esa | -enablesystemassertions enable system assertions -dsa | -disablesystemassertions disable system assertions -agentlib:<libname>[=<options>] load native agent library <libname>, eg -agentlib:hprof see also, -agentlib:jdwp=help and -agentlib:hprof=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 

我使用Google和论坛search,但唯一的结果是一个不同的问题:这是一个环境variables的问题(其中大部分结束的path与一个额外的斜线)。

如果我执行java -version,我会得到:

Java版本“1.6.0_35”Java™SE运行时环境(内部版本1.6.0_35-b10)Java HotSpot™64位服务器虚拟机(版本20.10-b01,混合模式)

如果我执行javac -version我得到:

javac 1.6.0_35

我使用的Maven verssion是3.0.4。 这些是我添加的环境variables(我添加了M2_HOME和MAVEN_HOME,因为我不确定哪一个是正确的variables):

 CATALINA_OPTS=%MAVEN_OPTS% CLASSPATH=%JAVA_HOME%\src.zip;%JAVA_HOME%\lib\tools.jar; JAVA_HOME=C:\Program Files\Java\jdk1.6.0_35 M2_HOME=d:\software\apache-maven-3.0.4 MAVEN_HOME=d:\software\apache-maven-3.0.4 MAVEN_OPTS=-Xms512m -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=512m PATH=%JAVA_HOME%\bin;%MAVEN_HOME%\bin;d:\software\eclipse;%M2_HOME%\bin 

path环境variables有更多path,但是我只是在这里粘贴了我为最后一年项目添加的path。

在此先感谢您的帮助。

您需要设置的唯一环境变量是:

 JAVA_HOME=C:\Program Files\Java\jdk1.6.0_35 MAVEN_HOME=D:\software\apache-maven-3.0.4 PATH=%PATH%;%MAVEN_HOME%\bin;%JAVA_HOME%\bin 

请注意,使用D:而不是d:

我使用apache-maven-3.3.1,并看到与我测试过的Alberto相同的问题,并发现当你运行类似于“C:\”“D:\”“E:\”这样的目录时,错误可能发生。应该去租约1个文件夹,如:“D:\ TestApp”

尝试改变JAVA_HOME="C:\Program Files\Java\jdk1.6.0_35"

我创建了一个文件夹P:\ projects。

我在该文件夹中运行mvn。 mvn按预期运行。

我将目录更改为P:\以运行mvn。 mvn用这个问题中描述的java usage劝告脱口而出。

我发现,通过撕开mvn.bat,Maven不能接受JVM属性

“-Dmaven.multimoduleeProjectDirectory = P:\”

当它的值是一个设备的根文件夹。

我还没有在Linux上试过。

顺便说一句,我也发现,mvn有一个错误的消息,拼写错误。 错误消息是“multimoduleeProjectDirectory propery未定义”。 起初我有阅读困难,“multimoduleeProjectDirectory没有正确定义”。

 >I found that Maven cannot accept the JVM >property > > >"-Dmaven.multimoduleeProjectDirectory=P:\" > >when it's value is the root folder of a device. 

除c:\以外的任何目录作为当前目录,现在…

 mvn -v works.