Java JBoss启动选项问题
我通过standalone.bat启动JBossAS7,它通过standalone.conf.bat提供JAVA_选项启动选项。我在standalone.conf.bat中设置了大多数JAVA_选项,我对一些JAVA_选项有一些疑问Java JBoss启动选项问题,java,jboss,jboss7.x,Java,Jboss,Jboss7.x,我通过standalone.bat启动JBossAS7,它通过standalone.conf.bat提供JAVA_选项启动选项。我在standalone.conf.bat中设置了大多数JAVA_选项,我对一些JAVA_选项有一些疑问 -mp "/opt/jboss-as-7.0.0.Final/modules" -logmodule org.jboss.logmanager -jaxpmodule javax.xml.jaxp-provider 我试着把这些设置成 set "JAVA_OP
-mp "/opt/jboss-as-7.0.0.Final/modules"
-logmodule org.jboss.logmanager
-jaxpmodule javax.xml.jaxp-provider
我试着把这些设置成
set "JAVA_OPTS=%JAVA_OPTS% -mp /opt/jboss-as-7.0.0.Final/modules"
set "JAVA_OPTS=%JAVA_OPTS% -logmodule org.jboss.logmanager"
set "JAVA_OPTS=%JAVA_OPTS% -jaxpmodule javax.xml.jaxp-provider"
在standalone.conf.bat中。这似乎不起作用,当我通过standalone.bat启动JBoss时,会出现诸如“unrecognized option-mp”或“unrecognized option-logmodule”之类的错误。如果我从standalone.conf.bat中删除这些行,我的JBoss就能够成功启动
我的问题是-我甚至需要设置这些JBoss启动选项吗?我找不到太多关于它们是什么的文档,尤其是“-mp”。如果是这样,设置这些启动选项的最佳方式是什么?JBoss不喜欢上面的语法。非常感谢您的建议。-mp、-logmodule和-jaxpmodule选项属于JBoss,而不是Java解释器。您的启动失败,因为您将它们包括在Java选项列表中,而解释器阻塞(它无法识别这些选项)
如果您没有试图绕过standalone.bat
,那么我认为没有理由将这些选项移动到standalone.conf.bat
文件中
编辑
JBoss 7.0.1的默认standalone.bat包含以下条目:
:RESTART
"%JAVA%" %JAVA_OPTS% ^
"-Dorg.jboss.boot.log.file=%JBOSS_HOME%\standalone\log\boot.log" ^
"-Dlogging.configuration=file:%JBOSS_HOME%/standalone/configuration/logging.properties" ^
-jar "%JBOSS_HOME%\jboss-modules.jar" ^
-mp "%MODULEPATH%" ^
-logmodule "org.jboss.logmanager" ^
-jaxpmodule "javax.xml.jaxp-provider" ^
org.jboss.as.standalone ^
-Djboss.home.dir="%JBOSS_HOME%" ^
%*
如果要修改-mp、-logmodule或-jaxpmodule值,只需在standalone.bat文件中就地修改即可。另一方面,看起来您正在使用默认值,因此甚至不需要进行任何更改。为什么
java
退出时出现“无法识别的选项”错误
将选项传递给java
的顺序是相关的
正如他在回答中所理解的那样,-mp
、-logmodule
和-jaxpmodule
都是JBoss选项。说明必须在类
(要调用的类的名称)之后或在-jar file.jar
选项之后指定这些和其他非JVM选项:
java [JVM options] class [non-JVM options]
java [JVM options] -jar file.jar [non-JVM options]
(然后将非JVM选项传递给类的主函数
,或者在使用-jar file.jar
时,传递给jar文件中由指示的启动类中的主函数。)
这就是为什么在JAVA_OPTS中设置JBoss选项不起作用的原因:它们位于-jar%JBoss_HOME%\JBoss modules.jar
选项之前,正如您在standalone.bat
中看到的那样:
"%JAVA%" %JAVA_OPTS% ^
"-Dorg.jboss.boot.log.file=%JBOSS_HOME%\standalone\log\boot.log" ^
"-Dlogging.configuration=file:%JBOSS_HOME%/standalone/configuration/logging.properties" ^
-jar "%JBOSS_HOME%\jboss-modules.jar" ^
-mp "%MODULEPATH%" ^
-logmodule "org.jboss.logmanager" ^
-jaxpmodule "javax.xml.jaxp-provider" ^
org.jboss.as.standalone ^
-Djboss.home.dir="%JBOSS_HOME%" ^
%*
java
抱怨,因为它需要一个合法的JVM选项
回答您的问题
我甚至需要设置这些JBoss启动选项吗
这些都是默认值,所以不需要
设置这些启动选项的最佳方式是什么
您可以将JBoss选项添加到SERVER_OPTS变量,因为它被附加到命令的末尾
好奇者:其他JBoss选项
您可以使用java-jar%JBoss\u HOME%\JBoss modules.jar列出其他JBoss选项:
Usage: java [-jvmoptions...] -jar jboss-modules.jar [-options...] <module-spec> [args...]
java [-jvmoptions...] -jar jboss-modules.jar [-options...] -jar <jar-name> [args...]
java [-jvmoptions...] -jar jboss-modules.jar [-options...] -cp <class-path> <class-name> [args...]
java [-jvmoptions...] -jar jboss-modules.jar [-options...] -class <class-name> [args...]
java [-jvmoptions...] -jar jboss-modules.jar -addindex [-modify] <jar-name>
where <module-spec> is a valid module specification string
and options include:
-help Display this message
-modulepath <search path of directories>
-mp <search path of directories>
A list of directories, separated by ':', where modules may be located
If not specified, the value of the "module.path" system property is used
-class Specify that the final argument is a
class to load from the class path; not compatible with -jar
-cp,-classpath <search path of archives or directories>
A search path for class files; implies -class
-dep,-dependencies <module-spec>[,<module-spec>,...]
A list of module dependencies to add to the class path;
requires -class or -cp
-deptree Print the dependency tree of the given module instead of running it
-jar Specify that the final argument is the name of a
JAR file to run as a module; not compatible with -class
-jaxpmodule <module-spec>
The default JAXP implementation to use of the JDK
-secmgr Run with a security manager installed; not compatible with -secmgrmodule
-secmgrmodule <module-spec>
Run with a security manager module; not compatible with -secmgr
-addindex Specify that the final argument is a
jar to create an index for
-modify Modify the indexes jar in-place
-version Print version and exit
用法:java[-jvmoptions…]-jar jboss-modules.jar[-options…][args…]
java[-jvmoptions…]-jar jboss-modules.jar[-options…]-jar[args…]
java[-jvmoptions…]-jar jboss-modules.jar[-options…]-cp[args…]
java[-jvmoptions…]-jar jboss-modules.jar[-options…]-class[args…]
java[-jvmoptions…]-jar jboss-modules.jar-addindex[-modify]
其中是有效的模块规范字符串
可供选择的方案包括:
-帮助显示此消息
-模块路径
-议员
模块所在的目录列表,以“:”分隔
如果未指定,则使用“module.path”系统属性的值
-类指定最后一个参数是
要从类路径加载的类;与-jar不兼容
-类路径
类文件的搜索路径;隐含类
-dep,-依赖项[,,…]
要添加到类路径的模块依赖项列表;
需要-class或-cp
-deptree打印给定模块的依赖关系树,而不是运行它
-jar指定最后一个参数是
作为模块运行的JAR文件;与-class不兼容
-jaxpmodule
使用JDK的默认JAXP实现
-在安装安全管理器的情况下运行secmgr;与-secmgr模块不兼容
-副经理模块
使用安全管理器模块运行;与-secmgr不兼容
-addindex指定最终参数为
jar为其创建索引
-在适当的位置修改索引
-版本打印版本并退出
我还尝试将它们添加到standalone.bat,这产生了相同的结果。这是正确的语法,还是应该使用JBOSS_OPTS=?伟大的谢谢你的帮助!没问题。如果我的答案有助于你解决问题,请随意标记为正确答案。祝项目顺利。@Perception-我个人认为,“-D”arg是一个程序arg,“-mp”和“-jaxpmodule”arg是JVM arg(显然),但不知怎么回事,它是如何工作的。我已经盯着这个看了一个小时,弄不懂它的意思。“如何”在不使用“-D”的情况下将属性传递给JVM(并工作!)?