JVM---------报错-----EXCEPTION_ACCESS_VIOLATION (0xc0000005)


项目中调用C语言封装的dll库文件、引用RoutInfo.Bus文件时报错,记录一下。

"C:\Program Files\Java\bin\java.exe" -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:55612,suspend=y,server=n -javaagent:C:\Users\hp\.IntelliJIdea2018.2\system\captureAgent\debugger-agent.jar=file:/C:/Users/hp/AppData/Local/Temp/capture.props -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jre\lib\charsets.jar;C:\Program Files\Java\jre\lib\deploy.jar;C:\Program Files\Java\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jre\lib\ext\localedata.jar;C:\Program Files\Java\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jre\lib\ext\sunec.jar;C:\Program Files\Java\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jre\lib\javaws.jar;C:\Program Files\Java\jre\lib\jce.jar;C:\Program Files\Java\jre\lib\jfr.jar;C:\Program Files\Java\jre\lib\jfxswt.jar;C:\Program Files\Java\jre\lib\jsse.jar;C:\Program Files\Java\jre\lib\management-agent.jar;C:\Program Files\Java\jre\lib\plugin.jar;C:\Program Files\Java\jre\lib\resources.jar;C:\Program Files\Java\jre\lib\rt.jar;D:\workspace\JavaProjects\BusScan\target\classes;C:\Users\hp\.m2\repository\org\springframework\boot\spring-boot-starter-data-jpa\1.5.8.RELEASE\spring-boot-starter-data-jpa-1.5.8.RELEASE.jar;C:\Users\hp\.m2\repository\org\springframework\boot\spring-boot-starter\1.5.8.RELEASE\spring-boot-starter-1.5.8.RELEASE.jar;C:\Users\hp\.m2\repository\org\springframework\boot\spring-boot\1.5.8.RELEASE\spring-boot-1.5.8.RELEASE.jar;C:\Users\hp\.m2\repository\org\springframework\boot\spring-boot-autoconfigure\1.5.8.RELEASE\spring-boot-autoconfigure-1.5.8.RELEASE.jar;C:\Users\hp\.m2\repository\org\springframework\boot\spring-boot-starter-logging\1.5.8.RELEASE\spring-boot-starter-logging-1.5.8.RELEASE.jar;C:\Users\hp\.m2\repository\ch\qos\logback\logback-classic\1.1.11\logback-classic-1.1.11.jar;C:\Users\hp\.m2\repository\ch\qos\logback\logback-core\1.1.11\logback-core-1.1.11.jar;C:\Users\hp\.m2\repository\org\slf4j\jul-to-slf4j\1.7.25\jul-to-slf4j-1.7.25.jar;C:\Users\hp\.m2\repository\org\slf4j\log4j-over-slf4j\1.7.25\log4j-over-slf4j-1.7.25.jar;C:\Users\hp\.m2\repository\org\springframework\spring-core\4.3.12.RELEASE\spring-core-4.3.12.RELEASE.jar;C:\Users\hp\.m2\repository\org\yaml\snakeyaml\1.17\snakeyaml-1.17.jar;C:\Users\hp\.m2\repository\org\springframework\boot\spring-boot-starter-jdbc\1.5.8.RELEASE\spring-boot-starter-jdbc-1.5.8.RELEASE.jar;C:\Users\hp\.m2\repository\org\apache\tomcat\tomcat-jdbc\8.5.23\tomcat-jdbc-8.5.23.jar;C:\Users\hp\.m2\repository\org\apache\tomcat\tomcat-juli\8.5.23\tomcat-juli-8.5.23.jar;C:\Users\hp\.m2\repository\org\springframework\spring-jdbc\4.3.12.RELEASE\spring-jdbc-4.3.12.RELEASE.jar;C:\Users\hp\.m2\repository\org\hibernate\hibernate-core\5.0.12.Final\hibernate-core-5.0.12.Final.jar;C:\Users\hp\.m2\repository\org\jboss\logging\jboss-logging\3.3.1.Final\jboss-logging-3.3.1.Final.jar;C:\Users\hp\.m2\repository\org\hibernate\javax\persistence\hibernate-jpa-2.1-api\1.0.0.Final\hibernate-jpa-2.1-api-1.0.0.Final.jar;C:\Users\hp\.m2\repository\org\javassist\javassist\3.21.0-GA\javassist-3.21.0-GA.jar;C:\Users\hp\.m2\repository\antlr\antlr\2.7.7\antlr-2.7.7.jar;C:\Users\hp\.m2\repository\org\jboss\jandex\2.0.0.Final\jandex-2.0.0.Final.jar;C:\Users\hp\.m2\repository\dom4j\dom4j\1.6.1\dom4j-1.6.1.jar;C:\Users\hp\.m2\repository\org\hibernate\common\hibernate-commons-annotations\5.0.1.Final\hibernate-commons-annotations-5.0.1.Final.jar;C:\Users\hp\.m2\repository\org\hibernate\hibernate-entitymanager\5.0.12.Final\hibernate-entitymanager-5.0.12.Final.jar;C:\Users\hp\.m2\repository\javax\transaction\javax.transaction-api\1.2\javax.transaction-api-1.2.jar;C:\Users\hp\.m2\repository\org\springframework\data\spring-data-jpa\1.11.8.RELEASE\spring-data-jpa-1.11.8.RELEASE.jar;C:\Users\hp\.m2\repository\org\springframework\data\spring-data-commons\1.13.8.RELEASE\spring-data-commons-1.13.8.RELEASE.jar;C:\Users\hp\.m2\repository\org\springframework\spring-orm\4.3.12.RELEASE\spring-orm-4.3.12.RELEASE.jar;C:\Users\hp\.m2\repository\org\springframework\spring-context\4.3.12.RELEASE\spring-context-4.3.12.RELEASE.jar;C:\Users\hp\.m2\repository\org\springframework\spring-tx\4.3.12.RELEASE\spring-tx-4.3.12.RELEASE.jar;C:\Users\hp\.m2\repository\org\springframework\spring-beans\4.3.12.RELEASE\spring-beans-4.3.12.RELEASE.jar;C:\Users\hp\.m2\repository\org\slf4j\jcl-over-slf4j\1.7.25\jcl-over-slf4j-1.7.25.jar;C:\Users\hp\.m2\repository\org\springframework\spring-aspects\4.3.12.RELEASE\spring-aspects-4.3.12.RELEASE.jar;C:\Users\hp\.m2\repository\org\springframework\boot\spring-boot-starter-web\1.5.8.RELEASE\spring-boot-starter-web-1.5.8.RELEASE.jar;C:\Users\hp\.m2\repository\org\springframework\boot\spring-boot-starter-tomcat\1.5.8.RELEASE\spring-boot-starter-tomcat-1.5.8.RELEASE.jar;C:\Users\hp\.m2\repository\org\apache\tomcat\embed\tomcat-embed-core\8.5.23\tomcat-embed-core-8.5.23.jar;C:\Users\hp\.m2\repository\org\apache\tomcat\tomcat-annotations-api\8.5.23\tomcat-annotations-api-8.5.23.jar;C:\Users\hp\.m2\repository\org\apache\tomcat\embed\tomcat-embed-el\8.5.23\tomcat-embed-el-8.5.23.jar;C:\Users\hp\.m2\repository\org\apache\tomcat\embed\tomcat-embed-websocket\8.5.23\tomcat-embed-websocket-8.5.23.jar;C:\Users\hp\.m2\repository\org\hibernate\hibernate-validator\5.3.5.Final\hibernate-validator-5.3.5.Final.jar;C:\Users\hp\.m2\repository\javax\validation\validation-api\1.1.0.Final\validation-api-1.1.0.Final.jar;C:\Users\hp\.m2\repository\com\fasterxml\jackson\core\jackson-databind\2.8.10\jackson-databind-2.8.10.jar;C:\Users\hp\.m2\repository\com\fasterxml\jackson\core\jackson-annotations\2.8.0\jackson-annotations-2.8.0.jar;C:\Users\hp\.m2\repository\com\fasterxml\jackson\core\jackson-core\2.8.10\jackson-core-2.8.10.jar;C:\Users\hp\.m2\repository\org\springframework\spring-web\4.3.12.RELEASE\spring-web-4.3.12.RELEASE.jar;C:\Users\hp\.m2\repository\org\springframework\spring-webmvc\4.3.12.RELEASE\spring-webmvc-4.3.12.RELEASE.jar;C:\Users\hp\.m2\repository\org\springframework\spring-expression\4.3.12.RELEASE\spring-expression-4.3.12.RELEASE.jar;C:\Users\hp\.m2\repository\mysql\mysql-connector-java\5.1.44\mysql-connector-java-5.1.44.jar;C:\Users\hp\.m2\repository\net\sf\json-lib\json-lib\2.4\json-lib-2.4-jdk15.jar;C:\Users\hp\.m2\repository\commons-collections\commons-collections\3.2.2\commons-collections-3.2.2.jar;C:\Users\hp\.m2\repository\commons-lang\commons-lang\2.5\commons-lang-2.5.jar;C:\Users\hp\.m2\repository\commons-logging\commons-logging\1.1.1\commons-logging-1.1.1.jar;C:\Users\hp\.m2\repository\net\sf\ezmorph\ezmorph\1.0.6\ezmorph-1.0.6.jar;C:\Users\hp\.m2\repository\org\springframework\boot\spring-boot-starter-aop\1.5.8.RELEASE\spring-boot-starter-aop-1.5.8.RELEASE.jar;C:\Users\hp\.m2\repository\org\springframework\spring-aop\4.3.12.RELEASE\spring-aop-4.3.12.RELEASE.jar;C:\Users\hp\.m2\repository\org\aspectj\aspectjweaver\1.8.11\aspectjweaver-1.8.11.jar;C:\Users\hp\.m2\repository\org\apache\httpcomponents\httpclient\4.5.2\httpclient-4.5.2.jar;C:\Users\hp\.m2\repository\org\apache\httpcomponents\httpcore\4.4.8\httpcore-4.4.8.jar;C:\Users\hp\.m2\repository\commons-beanutils\commons-beanutils\1.9.3\commons-beanutils-1.9.3.jar;C:\Users\hp\.m2\repository\commons-codec\commons-codec\1.10\commons-codec-1.10.jar;C:\Users\hp\.m2\repository\com\alibaba\fastjson\1.2.31\fastjson-1.2.31.jar;C:\Users\hp\.m2\repository\org\json\json\20171018\json-20171018.jar;C:\Users\hp\.m2\repository\org\springframework\boot\spring-boot-starter-amqp\1.5.8.RELEASE\spring-boot-starter-amqp-1.5.8.RELEASE.jar;C:\Users\hp\.m2\repository\org\springframework\spring-messaging\4.3.12.RELEASE\spring-messaging-4.3.12.RELEASE.jar;C:\Users\hp\.m2\repository\org\springframework\amqp\spring-rabbit\1.7.4.RELEASE\spring-rabbit-1.7.4.RELEASE.jar;C:\Users\hp\.m2\repository\com\rabbitmq\http-client\1.1.1.RELEASE\http-client-1.1.1.RELEASE.jar;C:\Users\hp\.m2\repository\com\rabbitmq\amqp-client\4.0.3\amqp-client-4.0.3.jar;C:\Users\hp\.m2\repository\org\springframework\retry\spring-retry\1.2.1.RELEASE\spring-retry-1.2.1.RELEASE.jar;C:\Users\hp\.m2\repository\org\springframework\amqp\spring-amqp\1.7.4.RELEASE\spring-amqp-1.7.4.RELEASE.jar;C:\Users\hp\.m2\repository\com\alibaba\druid\1.0.20\druid-1.0.20.jar;C:\Program Files\Java\lib\jconsole.jar;C:\Program Files\Java\lib\tools.jar;C:\Users\hp\.m2\repository\org\apache\httpcomponents\httpasyncclient\4.1.3\httpasyncclient-4.1.3.jar;C:\Users\hp\.m2\repository\org\apache\httpcomponents\httpcore-nio\4.4.6\httpcore-nio-4.4.6.jar;C:\Users\hp\.m2\repository\com\google\guava\guava\23.0\guava-23.0.jar;C:\Users\hp\.m2\repository\com\google\code\findbugs\jsr305\1.3.9\jsr305-1.3.9.jar;C:\Users\hp\.m2\repository\com\google\errorprone\error_prone_annotations\2.0.18\error_prone_annotations-2.0.18.jar;C:\Users\hp\.m2\repository\com\google\j2objc\j2objc-annotations\1.1\j2objc-annotations-1.1.jar;C:\Users\hp\.m2\repository\org\codehaus\mojo\animal-sniffer-annotations\1.14\animal-sniffer-annotations-1.14.jar;C:\Users\hp\.m2\repository\io\springfox\springfox-swagger2\2.8.0\springfox-swagger2-2.8.0.jar;C:\Users\hp\.m2\repository\io\swagger\swagger-annotations\1.5.14\swagger-annotations-1.5.14.jar;C:\Users\hp\.m2\repository\io\swagger\swagger-models\1.5.14\swagger-models-1.5.14.jar;C:\Users\hp\.m2\repository\io\springfox\springfox-spi\2.8.0\springfox-spi-2.8.0.jar;C:\Users\hp\.m2\repository\io\springfox\springfox-core\2.8.0\springfox-core-2.8.0.jar;C:\Users\hp\.m2\repository\net\bytebuddy\byte-buddy\1.7.9\byte-buddy-1.7.9.jar;C:\Users\hp\.m2\repository\io\springfox\springfox-schema\2.8.0\springfox-schema-2.8.0.jar;C:\Users\hp\.m2\repository\io\springfox\springfox-swagger-common\2.8.0\springfox-swagger-common-2.8.0.jar;C:\Users\hp\.m2\repository\io\springfox\springfox-spring-web\2.8.0\springfox-spring-web-2.8.0.jar;C:\Users\hp\.m2\repository\org\reflections\reflections\0.9.11\reflections-0.9.11.jar;C:\Users\hp\.m2\repository\com\fasterxml\classmate\1.3.4\classmate-1.3.4.jar;C:\Users\hp\.m2\repository\org\slf4j\slf4j-api\1.7.25\slf4j-api-1.7.25.jar;C:\Users\hp\.m2\repository\org\springframework\plugin\spring-plugin-core\1.2.0.RELEASE\spring-plugin-core-1.2.0.RELEASE.jar;C:\Users\hp\.m2\repository\org\springframework\plugin\spring-plugin-metadata\1.2.0.RELEASE\spring-plugin-metadata-1.2.0.RELEASE.jar;C:\Users\hp\.m2\repository\org\mapstruct\mapstruct\1.2.0.Final\mapstruct-1.2.0.Final.jar;C:\Users\hp\.m2\repository\io\springfox\springfox-swagger-ui\2.5.0\springfox-swagger-ui-2.5.0.jar;C:\Program Files\JetBrains\IntelliJ IDEA 2018.2.3\lib\idea_rt.jar" com.jm.JXBusRecord.JXBusRecordFun
Connected to the target VM, address: '127.0.0.1:55612', transport: 'socket'
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x000000005d7da25b, pid=23212, tid=0x0000000000005e1c
#
# JRE version: Java(TM) SE Runtime Environment (8.0_161-b12) (build 1.8.0_161-b12)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.161-b12 mixed mode windows-amd64 compressed oops)
# Problematic frame:
# V  [jvm.dll+0x15a25b]
#
# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows
#
# An error report file with more information is saved as:
# D:\workspace\JavaProjects\BusScan\hs_err_pid23212.log
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.java.com/bugreport/crash.jsp
#
Disconnected from the target VM, address: '127.0.0.1:55612', transport: 'socket'

Process finished with exit code 1


待解决

 

update---
更新了库文件后,问题解决。估计是库文件内处理不当导致java调用时出现异常。

package com.jm.JXBusRecord;

import org.apache.log4j.Logger;

import java.math.BigDecimal;


/**
 * 调用李经理接口计算票价站点名称.
 */
public class JXBusRecordFun {
    private static final Logger logger = Logger.getLogger(JXBusRecordFun.class);

    static {
        System.loadLibrary("JXBusRecordApi");
    }

    public static native int JM_GetConsumeInfo(String path, int lineName, int onstops, int offstops, int[] monmey, byte[] onstopname, byte[] offstopname);

    /**
     * 获取站点名称.
     *
     * @param lineId lineId
     * @param stop   stop
     * @return name
     */
    public static String getStopName(int lineId, int stop) {
        int[] Monmey = new int[2];
        byte[] OnstopName = new byte[32];
        byte[] OffstopName = new byte[32];

        String path = "C://Windows//System32//RoutInfo.Bus";

        int ret = JM_GetConsumeInfo(path, lineId, stop, stop, Monmey, OnstopName, OffstopName);
        logger.info("JM_GetConsumeInfo ret=" + Integer.toString(ret));
        String OffName = "";

        try {
            int length = 0;
            for (int i = 0; i < OnstopName.length; ++i) {
                if (OnstopName[i] == 0) {
                    length = i;
                    break;
                }
            }
            String str = new String(OnstopName, 0, length, "gbk");
            OffName = new String(str.getBytes("utf-8"), "utf-8");
            logger.info("调用dll库文件成功--byte[]截取后的长度:" + length + "--站点名称:" + OffName);
        } catch (Exception e) {
            logger.info("调用dll库文件失败----未获取到站点名称");
        }
        return OffName;
    }

    /**
     * 计算票价.
     *
     * @param lineId  lineId
     * @param stopOn  stopOn
     * @param stopOff stopOff
     * @return amount
     */
    public static BigDecimal calculatePrice(int lineId, int stopOn, int stopOff) {
        int[] Monmey = new int[2];
        byte[] OnstopName = new byte[32];
        byte[] OffstopName = new byte[32];

        String path = "C:/Windows/System32/RoutInfo.Bus";

        int ret = JM_GetConsumeInfo(path, lineId, stopOn, stopOff, Monmey, OnstopName, OffstopName);
        logger.info("JM_GetConsumeInfo ret=" + Integer.toString(ret));
        Integer monmey = Monmey[0];
        logger.info("monmeyGetFromDLL:" + monmey);
        if (monmey != 0) {
            String monmey100times = String.valueOf(monmey);
            BigDecimal doubleValue = new BigDecimal(monmey100times).divide(new BigDecimal("100"));
            logger.info("monmeyReturn:" + doubleValue);
            return doubleValue;
        }
        return new BigDecimal("0");
    }


    /**
     * test
     *
     * @param args
     */
    public static void main(String[] args) {
        int lineId = 9;
        int stopOn = 1;
        int stopOff = 1;

        String name = JXBusRecordFun.getStopName(lineId, stopOff);
        System.out.println("-----分段计费---下车站点---" + name);
        BigDecimal amount = JXBusRecordFun.calculatePrice(lineId, stopOn, stopOff);
        System.out.println("-----分段计费---" + amount);
    }

}


 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值