
正文
java怎么引用代码 java引用别的java文件
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
java怎么引用c
Java调用C语言程序时,主要是涉及到操作系统底层的事件。这种时间Java无法处理,例如用户上传一个视频文件,需要后台给视频加上水印,或者后台分离视频流和音频流。只能通过调用C语言处理。
使用Java如何去调用C语言的接口呢?使用Java的JNI技术。
具体调用步骤如下:
1.首先创建Java文件 HelloJni.java ,并创建native方法。
2.编译Java文件并生成java头文件。
3.创建C语言文件,HelloWorld.c。
4.生成动态链接库文件 libhello.so。
5.设置动态链接库文件的目录。
6.把刚才生成的so文件拷贝到/home/lib下,然后执行class文件。
相关问答
Q1: Java项目怎样让另一个类中的代码跟这个类里面的代码一起执行
1、在Java项目中新建一个类。然后在调用类中先进行被调用类实例化java怎么引用代码,然后通过实例化的对象访问。
2、在Java项目中新建一个类java怎么引用代码,将该类中需要被调用的方法设置为静态(static),加java怎么引用代码了static后,就可以用类名直接调用。然后在调用类中直接通过类名进行访问。3、这样就可以让Java项目另一个类中的代码跟这个类里面的代码一起执行了。
Q2: 如何在Java中调用Python代码
Jython(原JPython),是一个用Java语言写的Python解释器。 在没有第三方模块的情况下,通常选择利用Jython来调用Python代码, 它是一个开源的JAR包,你可以到官网下载 一个HelloPython程序 importorg.python.util.PythonInterpreter; publicclassHelloPython{ publicstaticvoidmain(String[]args){ PythonInterpreterinterpreter=newPythonInterpreter(); interpreter.exec("print('hello')"); } } 什么是PythonInterpreter?它的中文意思即是“Python解释器”。我们知道Python程序都是通过解释器来执行的,我们在Java中创建一个“解释器”对象,模拟Python解释器的行为,通过exec("Python语句")直接在JVM中执行Python代码,上面代码的输出结果为:hello在Jvm中执行Python脚本 interpreter.execfile("D:/labs/mytest/hello.py");如上,将exec改为execfile就可以了。需要注意的是,这个.py文件不能含有第三方模块,因为这个“Python脚本”最终还是在JVM环境下执行的,如果有第三方模块将会报错:javaImportError:Nomodulenamedxxx 仅在Java中调用Python编写的函数 先完成一个hello.py代码: defhello(): return'Hello'在Java代码中调用这个函数: importorg.python.core.PyFunction; importorg.python.core.PyObject; importorg.python.util.PythonInterpreter; publicclassHelloPython{ publicstaticvoidmain(String[]args){ PythonInterpreterinterpreter=newPythonInterpreter(); interpreter.execfile("D:/labs/hello.py"); PyFunctionpyFunction=interpreter.get("hello",PyFunction.class);//第一个参数为期望获得的函数(变量)的名字,第二个参数为期望返回的对象类型 PyObjectpyObject=pyFunction.__call__();//调用函数 System.out.println(pyObject); } } 上面的代码执行结果为:Hello 即便只是调用一个函数,也必须先加载这个.py文件,之后再通过Jython包中所定义的类获取、调用这个函数。 如果函数需要参数,在Java中必须先将参数转化为对应的“Python类型”,例如: __call__(newPyInteger(a),newPyInteger(b))a,b的类型为Java中的int型,还有诸如:PyString(Stringstring)、PyList(Iteratoriter)等。 详细可以参考官方的api文档。 包含第三方模块的情况:一个手写识别程序 这是我和舍友合作写的一个小程序,完整代码在这里:,界面上引用了corejava上的一段代码。Python代码是舍友写的,因为在Python程序中使用了第三方的NumPy模块,导致无法通过Jython执行。下面这个方法纯粹是个人思路,没有深入查资料。核心代码如下: importjava.io.*; classPyCaller{ privatestaticfinalStringDATA_SWAP="temp.txt"; privatestaticfinalStringPY_URL=System.getProperty("user.dir")+"\\test.py"; publicstaticvoidwriteImagePath(Stringpath){ PrintWriterpw=null; try{ pw=newPrintWriter(newFileWriter(newFile(DATA_SWAP))); }catch(IOExceptione){ e.printStackTrace(); } pw.print(path); pw.close(); } publicstaticStringreadAnswer(){ BufferedReaderbr; Stringanswer=null; try{ br=newBufferedReader(newFileReader(newFile(DATA_SWAP))); answer=br.readLine(); }catch(FileNotFoundExceptione){ e.printStackTrace(); }catch(IOExceptione){ e.printStackTrace(); } returnanswer; } publicstaticvoidexecPy(){ Processproc=null; try{ proc=Runtime.getRuntime().exec("python"+PY_URL); proc.waitFor(); }catch(IOExceptione){ e.printStackTrace(); }catch(InterruptedExceptione){ e.printStackTrace(); } } //测试码 publicstaticvoidmain(String[]args)throwsIOException,InterruptedException{ writeImagePath("D:\\labs\\mytest\\test.jpg"); execPy(); System.out.println(readAnswer()); } } 实际上就是通过Java执行一个命令行指令。
Q3: eclipse中一个java web项目如何引用另一个java web项目中的java代码
在eclipse中点击选中javaweb项目java怎么引用代码,然后点击右键java怎么引用代码,有个build path 或者是config build path
选中之后弹出新窗口,右边有4个子窗口,选中link source,新增就会弹出选择其他javaweb项目的下拉框,选择即可
Q4: Java中怎么引用传递
//Java中怎么引用传递,在main中的代码
public static void main(String[] args) {
Ldc l = new Ldc("你好");//这里的值可以改
System.out.println(l.str);
}
//----------------------------------------------------------------------------------------------------
//新建一个Ldc类代码如果
public class Ldc {
public String str ="";
Ldc(String str){
this.str="我在这里返回你传递来的参数:"+str;
}
}
Q5: java 引用传递代码
先和你说吧。str1和str2
都是引用类型,在栈中,里面存放
内存地址。str1就是指向"hello"
string是引用类型。
public
static
void
fun(string
str2)这句中传的是一个
str2的地址。这个地址也就是
str1中存的的地址。
现在在
栈中有两个
引用
str1
和str2
。都是指向
常量池中的"hello"...
str2="mldn";你的这句代码是
把
str2
指向常量池中的"mldn"
并没有修改str1的值。
三楼在忽悠人,别听他的
关于java怎么引用代码和java引用别的java文件的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。







