JBoss启动选项问题

use*_*804 3 java jboss jboss7.x

我通过standalone.bat 启动JBoss as7,它通过standalone.conf.bat 获取JAVA_OPTS 启动选项。我在standalone.conf.bat中设置了大部分JAVA_OPTS,我对一些JAVA_OPTS有一些疑问

-mp "/opt/jboss-as-7.0.0.Final/modules" 
-logmodule org.jboss.logmanager 
-jaxpmodule javax.xml.jaxp-provider
Run Code Online (Sandbox Code Playgroud)

我尝试将这些设置为

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"
Run Code Online (Sandbox Code Playgroud)

在standalone.conf.bat中。这似乎不起作用,当我通过standalone.bat启动JBoss时,我收到诸如“无法识别的选项-mp”或“无法识别的选项-logmodule”之类的错误。如果我从standalone.conf.bat 中删除这些行,我的JBoss 就能够成功启动。

我的问题是 - 我是否需要设置这些 JBoss 启动选项?我找不到太多关于它们是什么的文档,尤其是“-mp”。如果是这样,设置这些启动选项的最佳方法是什么?JBoss 不喜欢上面的语法。任何建议表示赞赏。

jau*_*ume 5

为什么java退出时出现“无法识别的选项”错误

选项传递到的顺序java相关的

正如 Perception在他的回答中所写-mp, 、-logmodule、 和-jaxpmodule是 JBoss 选项。Oracle帮助中心解释说,这些和其他非 JVM 选项必须在class(要调用的类的名称)或选项之后指定-jar file.jar

java [JVM options] class [non-JVM options]
java [JVM options] -jar file.jar [non-JVM options]
Run Code Online (Sandbox Code Playgroud)

(然后,非 JVM 选项将传递给 的 main 函数class,或者在使用 时,传递给 JAR 文件中的Main-Class 清单标头-jar file.jar指示的启动类中的 main 函数。)

这就是为什么在 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%" ^
 %*
Run Code Online (Sandbox Code Playgroud)

java抱怨是因为它需要一个合法的 JVM 选项。

对于您的问题

我是否需要设置这些 JBoss 启动选项?

这些是默认值,所以不,你不需要。

设置这些启动选项的最佳方法是什么?

您可以将 JBoss 选项添加到 SERVER_OPTS 变量,因为它附加到命令末尾。

好奇的人:其他 JBoss 选项

您可以使用以下命令列出其他 JBoss 选项java -jar %JBOSS_HOME%\jboss-modules.jar

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
Run Code Online (Sandbox Code Playgroud)