specjbb 牵手 jdk 系列(二):安装jdk及运行specjbb

1. 设置java环境变量等:

export JAVA_HOME=/home/yjiang2/jdk/jdk13-dwhite-centos7.5
export PATH=$JAVA_HOME/bin:$PATH
export SPECJBB_HOME=/home/yjiang2/specjbb
export CLASSPATH=.:$JAVA_HOME/lib:$SPECJBB_HOME/lib

2. 碰到Error: java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException

Preparing to launch All-in-one SPECjbb2015.

Reading property file: /home/yjiang2/bin/SPECjbb/config/specjbb2015.props

     0s: Enumerating plugins...
     0s:    Connectivity:
     0s:             HTTP_Grizzly: Grizzly HTTP server, JDK HTTP client
     0s:              NIO_Grizzly: Grizzly NIO server, Grizzly NIO client
     0s:               HTTP_Jetty: Jetty HTTP server, JDK HTTP client
     0s:    Snapshot:
     0s:                 InMemory: Stores snapshots in heap memory
     0s:    Data Writers:
     0s:                     Demo: Send all frame to listener
     0s:                   InFile: Writing Data into file
     0s:                   Silent: Drop all frames
     0s:
     0s: Validating kit integrity...
     0s: Kit validation had passed.
     0s:
     0s: Tests are skipped.
     0s:
     0s: <Thu Sep 05 17:02:06 CST 2019> org.spec.jbb.ic: Init IC
Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException
        at org.spec.jbb.core.comm.transport.TransportFactory.getEncapsulationLayer(TransportFactory.java:120)
        at org.spec.jbb.core.comm.transport.TransportFactory.getByteTransport(TransportFactory.java:51)
        at org.spec.jbb.core.comm.transport.TransportFactory.getTransport(TransportFactory.java:77)
        at org.spec.jbb.core.comm.transport.TransportFactory.<init>(TransportFactory.java:35)
        at org.spec.jbb.core.comm.transport.TransportFactory.getInstance(TransportFactory.java:28)
        at org.spec.jbb.core.comm.Interconnect$UplinkImpl.<init>(Interconnect.java:689)
        at org.spec.jbb.core.comm.Interconnect.addLink(Interconnect.java:252)
        at org.spec.jbb.core.comm.Interconnect.addLink(Interconnect.java:280)
        at org.spec.jbb.core.comm.Interconnect.<init>(Interconnect.java:177)
        at org.spec.jbb.core.comm.InterconnectFactory.getMaster(InterconnectFactory.java:22)
        at org.spec.jbb.Launcher$CompositeRunner.run(Launcher.java:398)
        at org.spec.jbb.Launcher.launch(Launcher.java:191)
        at org.spec.jbb.Launcher.main(Launcher.java:70)
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.JAXBException
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:604)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
        ... 13 more

问题分析:

JAXB API类作为Java 6/7/8中JDK的一部分提供的。由于JAXB API被认为是Java EE API,因此不再包含在Java SE 9的默认类路径中。新版本的jdk13也不包含,需要自行下载。进入specjbb/lib目录,用下面命令下载

wget http://search.maven.org/remotecontent?filepath=com/sun/activation/javax.activation/1.2.0/javax.activation-1.2.0.jar -O javax.activation-1.2.0.jar
wget http://search.maven.org/remotecontent?filepath=javax/xml/bind/jaxb-api/2.3.0/jaxb-api-2.3.0.jar -O jaxb-api-2.3.0.jar
wget http://search.maven.org/remotecontent?filepath=com/sun/xml/bind/jaxb-core/2.3.0/jaxb-core-2.3.0.jar -O jaxb-core-2.3.0.jar
wget http://search.maven.org/remotecontent?filepath=com/sun/xml/bind/jaxb-impl/2.3.0/jaxb-impl-2.3.0.jar -O jaxb-impl-2.3.0.jar

解决方法: 

下载好JAXB相关库后,给运行的java 添加-Xbootclasspath 参数包含JAXB库

java -Xbootclasspath/a:/home/yjiang2/jdk/jdk13-dwhite-centos7.5/lib/jaxb-api-2.3.0.jar:/home/yjiang2/jdk/jdk13-dwhite-centos7.5/lib/jaxb-core-2.3.0.jar:/home/yjiang2/jdk/jdk13-dwhite-centos7.5/lib/jaxb-impl-2.3.0.jar:/home/yjiang2/jdk/jdk13-dwhite-centos7.5/lib/javax.activation-1.2.0.jar 

3. 需要进入specjbb目录,运行

/home/yjiang2/jdk/jdk13-dwhite-centos7.5/bin/java -Xbootclasspath/a:/home/yjiang2/jdk/jdk13-dwhite-centos7.5/lib/jaxb-api-2.3.0.jar:/home/yjiang2/jdk/jdk13-dwhite-centos7.5/lib/jaxb-core-2.3.0.jar:/home/yjiang2/jdk/jdk13-dwhite-centos7.5/lib/jaxb-impl-2.3.0.jar:/home/yjiang2/jdk/jdk13-dwhite-centos7.5/lib/javax.activation-1.2.0.jar -Xms210g -Xmx210g -Xmn208g -XX:+UseParallelOldGC -XX:ParallelGCThreads=224 -XX:TargetSurvivorRatio=95 -XX:SurvivorRatio=55 -XX:MaxTenuringThreshold=15 -XX:-UseAdaptiveSizePolicy -XX:+AlwaysPreTouch -XX:-UsePerfData -XX:+UseBiasedLocking -XX:+UseLSE -XX:+UseNUMA -XX:-UseNUMAInterleaving -XX:InlineSmallCode=20k -XX:CompileThreshold=1000 -XX:+AvoidUnalignedAccesses -XX:+UseSIMDForMemoryOps -XX:-UseFPUForSpilling -XX:-SegmentedCodeCache -XX:MaxInlineLevel=15 --add-modules ALL-SYSTEM  -Dspecjbb.controller.rtcurve.warmup.step=0.7 -Dspecjbb.forkjoin.workers.Tier1=200 -Dspecjbb.forkjoin.workers.Tier2=1 -Dspecjbb.forkjoin.workers.Tier3=32 -Dspecjbb.customerDriver.threads=96  -jar /home/yjiang2/specjbb/specjbb2015.jar -m COMPOSITE -p /home/yjiang2/specjbb/config/specjbb2015.props

 尽管我运行java命令时-p 指定了 specjbb的specjbb2015.props

-p /home/yjiang2/specjbb/config/specjbb2015.props

运行的时候还是报错

Tests are skipped.
  8303s:
  8303s: Generating level 0 report from ./specjbb2015-C-20190906-00001.data.gz


SPECjbb2015 Java Business Benchmark
 (c) Standard Performance Evaluation Corporation, 2015

Preparing to launch SPECjbb2015 reporter.

Problem reading property file: ./config/specjbb2015.props, exiting

Mandatory options are:
  -m <mode>                    Runner mode

。。。
  -p <FILE>                    Property file (default: ./config/specjbb2015.props)

需要进入specjbb目录,运行。最后提示测试benchmark的报告成功生成 。

Tests are skipped.
  8241s:
  8241s: Generating level 0 report from ./specjbb2015-C-20190909-00001.data.gz


SPECjbb2015 Java Business Benchmark
 (c) Standard Performance Evaluation Corporation, 2015

Preparing to launch SPECjbb2015 reporter.

Reading property file: /home/yjiang2/bin/SPECjbb/./config/specjbb2015.props
Report directory is result/specjbb2015-C-20190909-00001/report-00001
  8242s: Building report...

      2109 msec: Pre-reading source
         0 msec: Validation
         1 msec: Printing JbbProperties
         0 msec: Controller time verification
         5 msec: Dump run logs
         5 msec: Build report with HW/SW parameters
        56 msec: Parsing attributes
         5 msec: Parsing agent names
       155 msec: Building throughput - response time curve
RUN RESULT: hbIR (max attempted) = 87464, hbIR (settled) = 83601, max-jOPS = 76094, critical-jOPS = 54396
        84 msec: Primary metrics calculation
       243 msec: Render Allowed Failures
      1765 msec: Render IR/PR Accuracy
      1576 msec: Request Mix accuracy
      1548 msec: Max Delay during RT curve building
      1677 msec: Render IR by probes tasks
      1686 msec: Overall RT curves
         0 msec: Render RT
        10 msec: Render template to file result/specjbb2015-C-20190909-00001/report-00001/data/specjbb2015-C-20190909-00001-runProperties.txt
        54 msec: Render template to file result/specjbb2015-C-20190909-00001/report-00001/specjbb2015-C-20190909-00001.html
Report generation finished. Wallclock = 4391 msecs, real = 10979 msecs, parallelism = 2.50x

java老版本不支持-XX:-SegmentedCodeCache  --add-modules ALL-SYSTEM,运行命令如下:

/usr/bin/java -Xbootclasspath/a:/home/yjiang2/jdk/jdk13-dwhite-centos7.5/lib/jaxb-api-2.3.0.jar:/home/yjiang2/jdk/jdk13-dwhite-centos7.5/lib/jaxb-core-2.3.0.jar:/home/yjiang2/jdk/jdk13-dwhite-centos7.5/lib/jaxb-impl-2.3.0.jar:/home/yjiang2/jdk/jdk13-dwhite-centos7.5/lib/javax.activation-1.2.0.jar -Xms210g -Xmx210g -Xmn208g -XX:+UseParallelOldGC -XX:ParallelGCThreads=224 -XX:TargetSurvivorRatio=95 -XX:SurvivorRatio=55 -XX:MaxTenuringThreshold=15 -XX:-UseAdaptiveSizePolicy -XX:+AlwaysPreTouch -XX:-UsePerfData -XX:+UseBiasedLocking -XX:+UseLSE -XX:+UseNUMA -XX:-UseNUMAInterleaving -XX:InlineSmallCode=20k -XX:CompileThreshold=1000 -XX:+AvoidUnalignedAccesses -XX:+UseSIMDForMemoryOps -XX:-UseFPUForSpilling -XX:MaxInlineLevel=15 -Dspecjbb.controller.rtcurve.warmup.step=0.7 -Dspecjbb.forkjoin.workers.Tier1=200 -Dspecjbb.forkjoin.workers.Tier2=1 -Dspecjbb.forkjoin.workers.Tier3=32 -Dspecjbb.customerDriver.threads=96  -jar /home/yjiang2/specjbb/specjbb2015.jar -m COMPOSITE -p /home/yjiang2/specjbb/config/specjbb2015.props

参考:

怎么解决java.lang.NoClassDefFoundError错误

java命令执行来依赖包的jar包

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值