问题标签 [sqlite4java]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 如何设置一个使用 sqlite4java 的简单 gradle 项目?
我正在使用 sqlite4java 开始一个简单的 java 测试项目并使用 java 构建。
我可以轻松下载核心 sqlite4java 库,但我不确定让 gradle 下载本机库并将它们放在正确位置的最佳(任何!)方法。
这是我的 build.gradle 文件:
但是当我运行一个简单的测试时,我得到:
(我是从 IntelliJ 内部构建的,但我使用的是 gradle 构建选项 - 所以我认为运行测试时不是 ItelliJ 填充了类路径......)
我很确定我第一次尝试构建时收到了一些关于无法解压缩 libsqlite4java-osx ZIP 文件的消息(并不奇怪,因为 maven Central 说它是一个 dylib 文件)。
我需要做什么才能让 gradle 做正确的事?
旁白:我可以通过手动将从 maven 缓存中下载的内容复制到我(我认为我在我的 mac 上使用过).dylib
中列出的某个地方来运行代码。但这似乎与将所有设置和依赖项打包在文件中的全部意义相反,并且不会让我以后轻松分发任何东西。java.library.path
$HOME/Library/Java/Extensions
.gradle
swing - 打包的可执行 jar 文件不使用包含的依赖库 (sqlite4Java)
我在使用 NetBeans IDE 和 Java Swing 构建的打包程序时遇到问题。当项目是从 netbeans 构建时,它会将程序所依赖的所有库复制到文件夹 dist 中名为 lib 的文件夹中,包括我使用的 sqlite4java API。Dist 还包含可执行的 .jar 文件。当文件打开时,正常的 jFrame 打开并且程序运行良好,直到调用 SQLiteConnection。不会返回任何错误,但程序总是无法超过可执行 .jar 文件中的那个点。但是,它在 NetBeans IDE 中运行良好。
该程序显示了一个文本区域,并且使用了一个swing worker 来不断地在文本区域中添加从数据库中获取的新字符串。
代码段中未包含的所有变量均已正确实例化。
这是有问题的代码:
第一个字符串“Reached”总是附加到文本区域,但第二个字符串“Reached2”永远不会添加。仅当我在 NetBeans 中构建程序并将其打包为包含依赖库的可分发 .jar 文件时,才会出现此问题。该程序在 NetBeans IDE 中运行良好。
eclipse - 如何让 Gradle 为 Eclipse 生成 java.library.path
我有一个使用 sqlite4java 的 gradle 项目,我在 eclipse 中工作。
我的问题是,当我让 gradle 生成 eclipse 项目文件时,项目类路径在类路径而不是 java.library.path 上包含 sqlite4java 的本机库,这导致 eclipse 无法构建我的项目,因为它抱怨本机库不是格式良好的 zip 文件。此外,当我从类路径中手动删除本机库时,当我运行测试或应用程序时,它们会出错,因为它们无法加载 sqlite4java 本机库。
如何让 gradle 在 eclipse 中为 sqlite4java 设置 java.library.path,以便我的代码在 eclipse 中兼容并运行?
java - java.lang.UnsatisfiedLinkError:java.library.path 中没有 sqlite4java-win32-x64-1.0.392 - 基于 gradle 的 javafx
我正在使用netbeans ide(win7)开发一个基于gradle的小型javafx项目。一切正常,直到我包含 cloudant-sync 和 sqlite4java,现在每当我运行项目时我都会得到 UnsatisfiedLinkError。请问我该如何解决这个问题。
java.lang.UnsatisfiedLinkError:java.library.path 中没有 sqlite4java-win32-x64-1.0.392
请参阅下面的 gradle.build 和控制台输出:
gradle.build
应用插件:'java'
sourceCompatibility = '1.8' [compileJava, compileTestJava] .options .encoding = 'UTF-8'
// NetBeans 将根据“mainClass”属性自动添加“运行”和“调试”任务。但是,您可以在执行 // 任务之前通过传递“-PmainClass=" 参数来定义属性。// // 但是请注意,如果您愿意,您可以定义自己的“运行”和“调试”任务。在这种情况下,NetBeans 不会添加这些任务,但您可以依赖 // 您自己的实现。if (!hasProperty('mainClass')) { ext.mainClass = 'falcon3.Main' }
存储库 { mavenCentral() }
依赖项{编译'com.jfoenix:jfoenix:1.1.0'编译组:'com.cloudant',名称:'cloudant-sync-datastore-javase',版本:'2.0.0'编译组:'com.almworks。 sqlite4java',名称:'sqlite4java',版本:'1.0.392' 编译'com.aquafx-project:aquafx:0.2' testCompile 组:'junit',名称:'junit',版本:'4.10' }
和
控制台输出
执行:gradle run 参数:[-c, C:\Users\???\Documents\NetBeansProjects\Falcon3\settings.gradle]
_runLoop(Native Method) at com.sun.glass.ui.win.WinApplication.lambda$null$148(WinApplication.java:191) ... 1 更多原因:java.lang.IllegalStateException:无法打开数据库。在 com.cloudant.sync.internal.sqlite.sqlite4java.SQLiteWrapper.createNewConnection(SQLiteWrapper.java:92) 在 com.cloudant.sync.internal.sqlite.sqlite4java.SQLiteWrapper.getConnection(SQLiteWrapper.java:73) 在 com.cloudant .sync.internal.sqlite.sqlite4java.SQLiteWrapper.isOpen(SQLiteWrapper.java:121) 在 com.cloudant.sync.internal.sqlite.sqlite4java.SQLiteWrapper.beginTransaction(SQLiteWrapper.java:126) 在 com.cloudant.sync.internal .sqlite.SQLDatabaseFactory.isFtsAvailable(SQLDatabaseFactory.java:52) at com.cloudant.sync.internal.sqlite.SQLDatabaseFactory.(SQLDatabaseFactory.java:45) ... 15 更多原因:com.almworks。
FAILURE:构建失败并出现异常。
出了什么问题:任务“:运行”执行失败。
Process 'command 'C:\Program Files\Java\jdk1.8.0_102\bin\java.exe'' 以非零退出值 1 结束
尝试:使用 --stacktrace 选项运行以获取堆栈跟踪。使用 --info 或 --debug 选项运行以获得更多日志输出。
构建失败
总时间:2.578 秒
构建失败(请参阅堆栈跟踪的通知窗口):gradle run
android - SQLite / FTS3 / FTS4 / Android中撇号的自定义令牌字符?
我的 Android 应用程序包含一个 SQLite 表(全文搜索/FTS3),其中包含以下数据:
格林产品
在应用程序中,当用户搜索Green's Product时,会找到匹配项。但是当用户搜索Greens Product(即,没有撇号)时,没有匹配项。
无论用户是否输入撇号,我都需要退回产品。
所以我一直在阅读有关 FTS3 标记器的文档,这表明我需要在tokenchars
参数中指定撇号。
所以我尝试像这样重新创建我的表:
CREATE VIRTUAL TABLE products USING fts3 (product_name TEXT, tokenize=simple "tokenchars='");
但是当用户搜索Greens Product时仍然没有匹配。
我也试过:
CREATE VIRTUAL TABLE products USING fts3 (product_name TEXT, tokenize=simple "tokenchars=''");
(双撇号)
和
CREATE VIRTUAL TABLE products USING fts4 (product_name TEXT, tokenize=simple "tokenchars='");
(fts4)
和
CREATE VIRTUAL TABLE products USING fts4 (product_name TEXT, tokenize=simple "tokenchars=''");
(双撇号和 fts4)
但他们似乎都没有为我工作。
我不确定下一步该尝试什么。而且我也不确定我是否会因为 Android 的 SQLite 实现而遇到一些限制。
有没有人有什么建议?