- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在开发一个需要使用.so库的项目(ubuntu 18.04),当我将java代码放在/src文件夹中时一切正常(我使用的是IntelliJ Idea),但是在我移动之后我的代码放入命名包(smutil)中,它会导致一些错误,例如“线程“main”java.lang.UnsatisfiedLinkError中的异常:smutil.GmSSL.digest(Ljava/lang/String;[B)[B”
这是我的代码
package smutil;
public class GmSSL {
public native String[] getVersions();
public native String[] getCiphers();
public native String[] getDigests();
public native String[] getMacs();
public native String[] getSignAlgorithms();
public native String[] getPublicKeyEncryptions();
public native String[] getDeriveKeyAlgorithms();
public native byte[] generateRandom(int length);
public native int getCipherIVLength(String cipher);
public native int getCipherKeyLength(String cipher);
public native int getCipherBlockSize(String cipher);
public native byte[] symmetricEncrypt(String cipher, byte[] in, byte[] key, byte[] iv);
public native byte[] symmetricDecrypt(String cipher, byte[] in, byte[] key, byte[] iv);
public native int getDigestLength(String digest);
public native int getDigestBlockSize(String digest);
public native byte[] digest(String algor, byte[] data);
public native String[] getMacLength(String algor);
public native byte[] mac(String algor, byte[] data, byte[] key);
public native byte[] sign(String algor, byte[] data, byte[] privateKey);
public native int verify(String algor, byte[] digest, byte[] signature, byte[] publicKey);
public native byte[] publicKeyEncrypt(String algor, byte[] in, byte[] publicKey);
public native byte[] publicKeyDecrypt(String algor, byte[] in, byte[] privateKey);
public native byte[] deriveKey(String algor, int keyLength, byte[] peerPublicKey, byte[] privateKey);
public native String[] getErrorStrings();
static {
System.loadLibrary("gmssljni");
}
}
最佳答案
您可能将 .so
文件打包到 JAR 中。请注意,一旦您有了 .so
,加载库就不那么容易了。
为了加载共享库,您必须确保它位于文件系统上。您可以通过将其提取到临时位置来解决此问题。
查看此处了解说明此主题的完整示例:
https://github.com/mkowsiak/jnicookbook/tree/master/recipes/recipeNo031
基本上,您需要做的是:
System.load(fullPathToFile)
就是这样:)
享受 JNI 带来的乐趣!
关于java - 将代码移入包后出现 UnsatisfiedLinkError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56607165/
我目前正在开发一款炸弹人游戏 :D。老实说,它进行得非常好。我现在正在创建我的 map 编辑器,但我想知道是否可以使用输出流在 .txt 文件中移动?我已经学会了如何使用缓冲区(字符串)读取 whil
基本上,标题...如果没有 QThread(或者它只是被评论)我得到以下结果: LOG> Log working! LOG> PRODUCER: sent resource address: 2998
我有 3 个 View ,并希望将它们集成到一个 View 中,以便它们成为这一 View 中的子文件夹。 我怎样才能做到这一点?还是我必须制作一个 View ,然后再次手动添加和配置这些 View
void rotate( unsigned long mask[], int rotateCnt ); 此函数将当前 64 位掩码 (mask[]) 旋转 rotateCnt 位。如果rotateCn
这是一个非常高级的架构问题。为什么还没有将 JVM 移入linux 内核,它可以更高效(包括即时编译代码)。 我知道这对最小内核的粉丝来说是可恶的,但 Linux 不是那些操作系统之一,它似乎。可以通
我的 Internet 连接速度很慢,我试图避免下载以前的 XCode 文档集和 SDK。 我刚刚安装了 XCode 4.5,发现它们没有包含任何 iOS 版本的文档集。也只有适用于 iOS 6 的
当单击另一个 div 时,如何将一个 div(应该在最右侧的 View 之外)移动到页面上?在下面的代码笔中,我希望绿色 div (id = "three") 离开页面,当单击红色 div (id =
当将 std::unique_ptr 移动到 lambda 中时,无法在其上调用 reset(),因为它似乎是 const : error C2662: void std::unique_ptr>::
我正在将数据库转储到 SQL 转储中: docker exec mysql sh -c 'exec mysqldump --all-databases -uroot -ppassword' > all
我是一名优秀的程序员,十分优秀!