当前位置:  技术问答>java相关

我用java调用*.dll的时候为什么结果没出来呢,高手你们看看啊,急急急急!!!!!!!!

    来源: 互联网  发布时间:2015-07-31

    本文导语:  我用java 调用*.dll的问题。 第一步:生成NativeDemo.java文件  代码: import java.lang.*; import java.io.*; import java.util.*; public class NativeDemo  {       int i;     int j;     public static void main(String args[])     {    ...

我用java 调用*.dll的问题。

第一步:生成NativeDemo.java文件
 代码:
import java.lang.*;
import java.io.*;
import java.util.*;

public class NativeDemo 
{  
    int i;
    int j;
    public static void main(String args[])
    {
         NativeDemo ob = new NativeDemo();
         ob.i = 10;
         System.out.println("this is ob.i:"+ob.i+"n");
    } 
      public native int test();
    static 
    {
        System.loadLibrary("Dllsam");    
    }


编译没错误。



第二步:   用javah 生成 NativeDemo.h文件
代码如下:
/* DO NOT EDIT THIS FILE - it is machine generated */
#include 
/* Header for class NativeDemo */

#ifndef _Included_NativeDemo
#define _Included_NativeDemo
#ifdef __cplusplus
extern "C" {
#endif
/*
 * Class:     NativeDemo
 * Method:    test
 * Signature: ()I
 */
JNIEXPORT jint JNICALL Java_NativeDemo_test
  (JNIEnv *, jobject);

#ifdef __cplusplus
}
#endif
#endif

 


第三步:  编写文件test2.cpp 实现 NativeDemo.h文件中的方法:
代码如下:
#include "stdafx.h"
#include "nativedemo.h"
#include 

JNIEXPORT jint JNICALL Java_NativeDemo_test(JNIEnv *, jobject)
{

    printf("hello:!n");
    printf("this is in the native method!n");
    return 0;
    
}


第四步:用VC的动态连接库工程生成动态库文件,把 NativeDemo.h和test2.cpp文件生成 Dllsam.dll, 生成成功,

第五步:把Dllsam.dll放在 和NativeDemo.class同一目录下。 

第六步:运行结果: java  NativeDemo 
        结果是:  this is ob.i:10

请问正确结果该是   hello:!
                   this is in the native method!
                   this is ob.i:10

为什么调用动态库的东西没出来,你们帮我看看,我十分着急。


         



|
因为你根本没有调用Native方法啊!

import java.lang.*;
import java.io.*;
import java.util.*;

public class NativeDemo 
{  
    int i;
    int j;
    public static void main(String args[])
    {
         NativeDemo ob = new NativeDemo();
         ob.i = 10;
         ob.test();
         System.out.println("this is ob.i:"+ob.i+"n");
    } 
      public native int test();
    static 
    {
        System.loadLibrary("Dllsam");    
    }


    
 
 

您可能感兴趣的文章:

  • VB编写的DLL不能被JAVA调用,用C将VB编写的DLL包装起来,做成一个新的DLL;用C编写的DLL可以被JAVA调用,用JAVA再进行一层的包装,因为JAV
  • 请问从一个java程序中如何调用另一java程序,并控制可以其状态(最小化、最大化、结束程序),还有怎样知道那个被调用的程序结束。
  • 可不可以用java调用其他语言的编译结果?(好象asp调用com那样)
  • 请问如何在Java中调用一个VB所写的DLL?如何调用这个Dll的方法?如何取得和设置这个Dll的属性值?谢谢!
  • ###java调用COM组件或COM调用java组件(EJB)解决办法。###
  • java线程怎么调用java的application.class?
  • 求救!!如何在java程序中调用外部非java的exe文件?
  • 急!请问有分析java程序性能瓶颈的工具吗?例如,统计 java 程序中函数调用次数?
  • java.awt 和java.util都有List,想调用awt的List而出现Ambiguous class错误怎么办?
  • 一个.java文件中怎样来调用另一个.java文件中的变量及其它东西!
  • java调用sh脚本遇到export命令会卡住,sh不能调用子sh
  • Java能调用OLE对象吗?怎样利用Java生成Excel报表?
  • java打包后如何调用?
  • 请问Java可否调用MsSQL的存储过程,如何调用?
  • 奇怪?我在jsp中调用java类。java类本身编译没错,但jsp中的引用Tomcat总是报错。
  • java能否调用dll或ocx
  • 如何用java调用word?来者给分!·!!!!!
  • 怎么在java里调用一个oracle的procedure呢?
  • 我在APPLET里调用JAVAMAIL发邮件,出现java.security.AccessControlException: access denied (java.util.PropertyPermission * read,write)的错误???
  • 求教!!!VC应用调用Java模块可行吗?
  • 如何用JAVA 将一个目录(包括子目录)下所有的文件名列出来呀,举个例子,d:java
  • Java究竟能干些什么呢?清高手们列举一些实例出来,跟帖有分.
  • 请教java高手怎样把一个记录写到文件中去?然后再读出来?
  • 为什么JAVA算出来的日期是错的?
  • 请问各不同的浏览器版本对应支持Java相应的哪个版本编译出来的程序?
  • c#出来后,java会受多大的冲击?
  • 我的在unix下的java程序不知道为什么自己总崩出来?
  • 为什么JAVA 的SWING按钮发布后显示不出来?
  • java读文件,比如有文件中有8个字节是double型,怎么它读出来,也转为double
  • 很奇怪,varchar2类型在sql*plus中可以看到正常的字符串,用java读出来却是二进制?
  • 在数据库中怎样存放一张图片,然后用java显示出来?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 问个低级的问题,我编译的时候没问题,可运行时候出现如下提示:Exception in thread "main" java.lang.NoClassDefFoundError: NativeDem
  • 我在执行javac命令的时候没有问题,但是在执行java命令的时候却报如下错误
  • vj++打开Form1.java的时候,出现错误:"java.lang.IllegalAccessError: com/ms/wfc/util/Debug$Switch"
  • 配置java时候的问题
  • 第一个java程序,怎么运行的时候老是报错?
  • 编译JAVA程序的时候,如果需要的JAR不在CLASSPATH,有什么办法能成功编译吗???
  • 各位大虾,为什么我的java程序能通过编译,但是在用java命令运行程序的时候却老是报错“Exception in thread "main" java.lang.NoClassDe
  • 请问在编写Java小应用程序的时候,有些功能用JavaScript实现是否可以提高效率呢?
  • 在程序头加上package为什么在java执行的时候报错
  • Java编程的时候怎样有效的防止内存泄露?
  • 一个java初级问题,关于编译的时候“java.awt.event”错误 ~*~
  • 在forte for java 4的Source Editor中编辑jsp时候,可以输入中文,可是保存后关闭再打开,中文显示???,怎么回事啊
  • 违例处理问题1:是不是每个java方法都要有throws Exception子句呢?什么时候必须用?
  • JAVA语法里的VOID到底怎么用呀?我不知道什么时候加到类或者方法里!?
  • 刚才发现了一个很严重的问题,java传递参数的时候不能检查正确?
  • 各位:在java中向数据库insert的时候如何实现事务?
  • 编译java文件的时候提示,找不到“import javax.servlet.ServletConfig”
  • ***用JAVA写了一个'搬运工'游戏,画图的时候遇到了点问题,请进!
  • 能不能在java程序运行的时候产生odbc数据源?
  • 为什么在编译java程序的时候出现oracle.jdbc.driver不存在?急!!!
  • java命名空间java.sql类types的类成员方法: java_object定义及介绍
  • 我想学JAVA ,是买THINK IN JAVA 还是JAVA2核心技术:卷1 好???
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: imageflavor定义及介绍
  • 请问Java高手,Java的优势在那里??,Java主要适合于开发哪类应用程序
  • java命名空间java.lang.management类managementfactory的类成员方法: getcompilationmxbean定义及介绍
  • 如何将java.util.Date转化为java.sql.Date?数据库中Date类型对应于java的哪个Date呢
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getlibrarypath定义及介绍
  • 谁有电子版的《Java编程思想第二版(Thinking in java second)》和《Java2编程详解(special edition java2)》?得到给分
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getstarttime定义及介绍
  • 本人想学java,请问java程序员的待遇如何,和java主要有几个比较强的方向
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: stringflavor定义及介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3