我设置了一个python代码来运行Selenium chromedriver.exe.在运行结束时,我必须browser.close()关闭实例.(browser = webdriver.Chrome())我相信它应该chromedriver.exe从内存中释放(我在Windows 7上).但是,每次运行后chromedriver.exe,内存中仍有一个实例.我希望有一种方法可以在python中编写一些东西来杀死chromedriver.exe进程.显然browser.close()不做这项工作.谢谢.
System.load()和System.loadLibrary()java 之间有什么区别?
我想加载一个库,但我不想添加环境变量的路径.这些中的任何一个都有帮助吗?
有两种JRE可供选择.Java VM:IBM vs Sun.
有没有办法通过java脚本或一些java发出的命令知道我正在使用哪个JRE.
长话短说:我有一个可执行的jar,jni.dll它依赖于调用lib.dll.我得到了那么可怕的哦UnsatisfiedLinkError.
这个答案非常接近,但根据我的经验,它无法解决问题.即使指定了dll驻留的文件夹java.library.path,它也不起作用.我也必须更改Windows PATH环境变量.实际上,java.library.pathWindows上的默认设置似乎是PATH.
有没有"漂亮"的方法来解决这个问题?我想为Windows构建一个安装程序,我想知道如何处理这个问题,以便最终用户不必做任何手动工作.
编辑:
我实现的内容如下:应用程序附带一个名为"native_libs"的文件夹,该文件夹具有适用于所有支持的体系结构的动态库.结构如下:
/
+- native_libs/
+- windows/
| +- x86/
| | +- ...
| +- x64/
| +- ...
|
+- linux/
| +- x86/
| | +- ...
| +- x64/
| +- ...
|
+- libs/
+- ...
Run Code Online (Sandbox Code Playgroud)
在运行时,在应用程序初始化时,会检测到正确的JRE体系结构和系统OS,并将正确的库文件复制到libs /文件夹.在java.library.path正在运行时使用一个共同的黑客,以及设置.最后,PATH使用本机启动程序设置Windows 的环境变量.
还有改进的余地吗?也许将dll复制到与jar文件相同的目录中会否定设置java.library.path和PATH变量的需要?我还需要调查加载dll的System.load()方法,否则需要复制文件.
我是lp解决的新手.我试图运行以下代码并收到以下错误:
package package1;
/**
* Created by ANJANEY on 6/13/2014.
*/
import lpsolve.*;
public class Demo {
public static void main(String[] args) {
try {
// Create a problem with 4 variables and 0 constraints
LpSolve solver = LpSolve.makeLp(0, 4);
// add constraints
solver.strAddConstraint("3 2 2 1", LpSolve.LE, 4);
solver.strAddConstraint("0 4 3 1", LpSolve.GE, 3);
// set objective function
solver.strSetObjFn("2 3 -2 3");
// solve the problem
solver.solve();
// print solution
System.out.println("Value of objective function: " + solver.getObjective());
double[] var …Run Code Online (Sandbox Code Playgroud) 我有这段简单的代码试图加载JRI模块.
public static void main(String... args) {
System.out.println(System.getProperty("java.library.path").toString());
System.setProperty("jri.ignore.ule", "yes");
System.loadLibrary("jri");
}
Run Code Online (Sandbox Code Playgroud)
我将java.library.path作为VM参数传递,但JRI无法加载以下错误:
C:\Users\Abhishek\Documents\R\win-library\3.1\rJava\jri;C:\Users\Abhishek\Documents\R\win-library\3.1\rJava
Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\Users\Abhishek\Documents\R\win-library\3.1\rJava\jri\jri.dll: Can't find dependent libraries
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1929)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1847)
at java.lang.Runtime.loadLibrary0(Runtime.java:870)
at java.lang.System.loadLibrary(System.java:1119)
at pack.TestJRI.main(TestJRI.java:10)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134)
Run Code Online (Sandbox Code Playgroud)
在此先感谢您的帮助.
我执行了 youtube watch me android 应用程序项目。我只是在我的项目中添加了一些类并使用 ndk 构建。我得到了这样的错误
java.lang.UnsatisfiedLinkError:找不到 int com.ephronsystem.mobilizerapp.Ffmpeg.encodeVideoFrame(byte[]) 的实现(尝试了 Java_com_ephronsystem_mobilizerapp_Ffmpeg_encodeVideoFrame 和 Java_com_ephronsystem_mobilizerapp_Ffmpeg_encodeVideoFrame___3B)。
我的代码:
package com.ephronsystem.mobilizerapp;
public class Ffmpeg {
static {
System.loadLibrary("ffmpeg");
}
public static native boolean init(int width, int height, int audio_sample_rate, String rtmpUrl);
public static native void shutdown();
// Returns the size of the encoded frame.
public static native int encodeVideoFrame(byte[] yuv_image);
public static native int encodeAudioFrame(short[] audio_data, int length);
}
Run Code Online (Sandbox Code Playgroud)
这是 ffmpeg-jni.c
#include <android/log.h>
#include <string.h>
#include <jni.h>
#include "libavcodec/avcodec.h"
#include "libavformat/avformat.h"
#include "libavutil/opt.h" …Run Code Online (Sandbox Code Playgroud) java-native-interface android ffmpeg youtube-api android-ndk
我正在Eclipse上进行Java项目,该项目通过JNI使用C ++ OpenCV库。一些图像处理算法是通过本机端的OpenCV实现的,我希望使用JNI在Java中使用它们。
我已经建立了一个C ++ DLL项目以链接到Java,从而生成了一个MyLibrary.dll文件。我用GCC 6.3编译器编译了OpenCV,然后在Eclipse CDT(以及MinGW Linker)上用相同的GCC 6.3编译器编译了C ++代码。我还使用Dependency Walker检查了是否存在任何依赖问题。到目前为止,我没有任何错误。
之后,我尝试从Java代码加载库,如下所示:
System.loadLibrary("MyLibrary")
我已经使用设置了路径-Djava.library.path=path\to\MyLibrary,并确保JVM知道本机库的地址。我还在旁边添加了所需的OpenCV库MyLibrary.dll。
但是我收到以下错误:
Exception in thread "main" java.lang.UnsatisfiedLinkError: MyLibrary.dll: Can't find dependent libraries
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(Unknown Source)
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.loadLibrary0(Unknown Source)
at java.lang.System.loadLibrary(Unknown Source)
...
Run Code Online (Sandbox Code Playgroud)
然后,当我将相关的OpenCV库移入该System32文件夹时,问题就消失了。
我的问题是;如何在不将所需DLL文件移动到System32文件夹的情况下解决此问题?
我在 Java 加载本机 dll 时遇到问题,因为它发生在 64 位 Windows 7 上。FWIW 包是 ZeroMQ,但重要的是该 jar 需要加载本机 dll,称为 jzmq.dll。这又取决于 libzmq.dll (和一些标准库)。我已将两个 dll 复制到 target/lib 并设置java.language.path为 target/lib。
如果我写:
System.loadLibrary("jzmq");
Run Code Online (Sandbox Code Playgroud)
我得到UnsatisfiedLinkError一个Can't find dependent libraries. 但是如果我说
System.loadLibrary("libzmq");
System.loadLibrary("jzmq");
Run Code Online (Sandbox Code Playgroud)
然后就没问题了,jzmq.dll加载成功。
在随附的 jar 中,它就包含在内System.loadLibrary("jzmq"),我不想在代码中摆弄依赖项。我不清楚为什么依赖项不会自动加载,也不清楚我需要做什么才能让它正常工作。
预先感谢您的任何帮助!