小编Rub*_*enC的帖子

C++从Linux上的Clipboard获取字符串

你好我正在写一个c ++程序,我需要把剪贴板上的内容变成字符串变量.我找到了很多解决方案,但所有解决方案都是针对Windows编写的.有没有使用QT库的方法?我找到了与X11相关的东西,但不是很清楚.

非常感谢你

c++ linux x11 clipboard codeblocks

5
推荐指数
2
解决办法
5427
查看次数

Linux,java.lang.UnsatisfiedLinkError:java.library.path中没有"库文件"

我正在尝试运行一个简单的JNI示例,其中我运行一个通过动态库调用c ++函数的java应用程序.

我将发布我使用的以下代码和终端命令.

的.java

public class Lab{
   public native void hello();

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

   public static void main(String args[]) {
      new Lab().hello();
   }
}
Run Code Online (Sandbox Code Playgroud)

通过终端获取.class和头文件

javac Lab.java
javah -jni Lab
Run Code Online (Sandbox Code Playgroud)

hello.cpp文件

#include "Lab.h"
#include <stdio.h>
#include <iostream>

JNIEXPORT void JNICALL Java_Lab_hello(JNIEnv *env,jobject jobj) {
   cout<<"Hello World"<<endl;
}
Run Code Online (Sandbox Code Playgroud)

生成lib文件"hello.so":

gcc -shared -fpic -o hello.so -I/usr/lib/jvm/jdk1.8.0_45/include -I/usr/lib/jvm/jdk1.8.0_45/include/linux hello.cpp
Run Code Online (Sandbox Code Playgroud)

最后运行文件:

java -Djava.library.path=. Lab
Run Code Online (Sandbox Code Playgroud)

然后我得到错误:

Exception in thread "main" java.lang.UnsatisfiedLinkError: no hello in java.library.path
        at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1865)
        at java.lang.Runtime.loadLibrary0(Runtime.java:870)
        at java.lang.System.loadLibrary(System.java:1122)
        at Lab.<clinit>(Lab.java:6)
Run Code Online (Sandbox Code Playgroud)

我知道还有其他帖子有同样的问题,但不幸的是,这些解决方案都没有对我有用.我已经尝试过这样的事情: …

c++ java linux java-native-interface unsatisfiedlinkerror

2
推荐指数
1
解决办法
2884
查看次数