问题列表 - 第43638页

Java - 通过相对路径加载dll并将它们隐藏在jar中

第1部分

我正在开发一个应该作为jar发布的Java应用程序.该程序依赖于JNI调用的C++外部库.要加载它们,我使用System.load绝对路径的方法,这很好.

但是,我真的想在JAR中"隐藏"它们,所以我创建了一个包来收集它们.这迫使我加载一个相对路径 - 包路径.通过这种方法,我让用户在任何目录中运行JAR,而不用担心链接DLL或无聊以前的安装过程.

这会引发预期的异常:

线程"main"中的异常java.lang.UnsatisfiedLinkError:期望库的绝对路径

我怎样才能使这个工作?

第2部分

将DLL复制到文件夹(下面解释)的方法仅在我在eclipse环境下运行时才有效.运行导出的JAR,DLL二进制文件很好地创建,但加载JNI会抛出下一个异常:

线程"main"java.lang.reflect.InvocationTargetException中的异常

 at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:56)
 Caused by: java.lang.UnsatisfiedLinkError: C:\Users\Supertreta\Desktop\nm files\temp\jniBin.dll: Can't find dependent libraries at java.lang.ClassLoader$NativeLibrary.load(Native Method)
Run Code Online (Sandbox Code Playgroud)

我运行这个加载方法:

public static void loadBinaries(){
        String os = System.getProperty("os.name").toLowerCase();

        if(os.indexOf("win") >= 0){
            ArrayList<String> bins = new ArrayList<String>(){{
                add("/nm/metadata/bin/dependence1.dll");
                add("/nm/metadata/bin/dependence2.dll");
                add("/nm/metadata/bin/dependence3.dll");
                add("/nm/metadata/bin/dependence4.dll");
                add("/nm/metadata/bin/jniBin.dll");
            }};

            File f = null;
            for(String bin : bins){
                InputStream in = FileManager.class.getResourceAsStream(bin);
                byte[] buffer = new byte[1024];
                int read = -1;
                try {
                    String[] temp = bin.split("/");
                    f = new …
Run Code Online (Sandbox Code Playgroud)

java java-native-interface jar loading relative-path

20
推荐指数
1
解决办法
4万
查看次数

什么是android加速度计最小和最大范围

嗨我想知道android中加速度计的最小和最大范围.

我需要它为x,y,z.

任何人都有确切的价值吗?

android accelerometer

7
推荐指数
1
解决办法
9221
查看次数

如何在基于servlet的Web应用程序中运行后台任务?

我正在使用Java,我想在我的应用程序中保持servlet不断运行,但我不知道怎么做.我的servlet有一个方法,它每天从数据库中提供用户的计数以及整个数据库中用户的总数.所以我想保持servlet不断运行.

multithreading servlets background-process java-ee scheduledexecutorservice

93
推荐指数
1
解决办法
4万
查看次数

将视图引擎升级到Razor

我不想将我的MVC.Net站点升级到3.0,还要将我的asp.net视图引擎升级到Razor.

我已经看到,例如母版页看起来有点不同,那么有没有关于如何从asp.net切换到Razor的教程?

另外,如何更新现有站点的视图引擎?

asp.net-mvc razor

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

如何实现字典(Trie vs HashTable和重要问题)?

我遇到了几个问题和文章,说java中的字典实现最好用try.但就我所见,他们中的大多数都没有解决重要问题.那么,接下来是一个现实世界的任务:

让我们假设我需要使用java来实现一个字典(让我们说像Lingvo,但更简单).对于我的特定任务,需要存储单词定义并执行快速字典查找.

请解决下一个问题:

  • 那我应该使用什么数据结构(Trie或HashTable)?
  • 如果我需要字典不区分大小写,它应该如何组织(搜索,数据结构)?
  • 如果我希望它(搜索,字典)区分大小写怎么办?

PS:代码示例受到高度赞赏.:)

提前感谢您的回答.

更新:如果我们在谈论Java中的标准DS实现,那么HashTable对于这个特定任务来说是最好的吗?为什么不使用HashMap,TreeMap或LinkedHashMap?

java algorithm lookup dictionary data-structures

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

asp.net mvc数据注释的默认值

是否存在可在ASP.NET MVC中使用的默认值属性,以便为输入设置默认属性,即创建表单.

System.ComponentModel中有这样的属性,但它没有任何效果.

谢谢Ben

asp.net-mvc

4
推荐指数
1
解决办法
8287
查看次数

预约分配算法

我正在寻找用于为资源分配预留的算法.这可能是与可用房间相匹配的酒店预订 - 与可用会议室相匹配的会议预订 - 与桌子相匹配的餐厅预订.

他们有什么共同点:

  • 每个预订都有一个特定的不可更改的开始和结束时间.
  • 每个预留都不会在开始时间之前绑定到特定资源.
  • 可以有不同数量的资源.
  • 每次新预订到来时,算法至少应该能够检查是否可以匹配资源.

到目前为止,我主要研究了遗传算法的方法来解决这个问题,但是我无法将问题编码到染色体上.

对此算法的任何想法都是受欢迎的,也是唯一能找到"好"解决方案而不是最佳解决方案的算法.

algorithm allocation

12
推荐指数
2
解决办法
9765
查看次数

找到失踪的月份

我有自己的方式做这个,但我不相信它是最好的,在C#

给出a List<DateTime>,a DateTime startDate和an DateTime endDate.你会如何返回一个新的 List<DateTime>,每一个月之间startDate,并endDate认为是包括在原始内List<DateTime>的包容性startDateendDate.

日期不保证是月份的开始,可以是月内的任何日期.

startDate并且endDate可能跨越多年.

返回的列表应包含缺少的每个月的第一天.

谢谢,我希望这是有道理的.

c# datetime

6
推荐指数
1
解决办法
1215
查看次数

查询很慢,在"dbcc freeproccache"之后变得很快.这可能是我的参数吗?

有问题的网站通常表现得相当不错,但随着时间的推移它变得越来越慢.

我们有一个巨大的查询来查找用户正在搜索的产品,它们大多采用以下形式:

WHERE ProductName LIKE @ProductName OR @ProductName IS NULL
  AND ProductGroup LIKE @ProductGroup or @ProductGroup IS NULL
  AND (...)
Run Code Online (Sandbox Code Playgroud)

这样,如果我们只搜索产品编号,我们就不必传递所有参数.这可能是查询变慢的原因吗?与第一次缓存查询有关的事情,以及下次参数更改时,它使用旧的查询计划?

如果是这样; 解决这个问题的最佳方法是什么?动态SQL?

t-sql sql-server parameters performance sql-server-2005

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

$ <和$ @在make文件中的含义是什么

我在WDK构建环境中的makefile中找到了这些伪变量名.这些变量引用了什么?我相信,通过搜索引擎得到答案有点困难,因为它们很特别.

makefile wdk visual-studio

9
推荐指数
1
解决办法
8567
查看次数