import com.tableausoftware.TableauException;
import com.tableausoftware.common.Type;
import com.tableausoftware.extract.Extract;
import com.tableausoftware.extract.Row;
import com.tableausoftware.extract.Table;
import com.tableausoftware.extract.TableDefinition;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
public class TestTableau {
public static void main(String[] args) throws IOException {
//delete existing extract file
String extractFile = "extract.tde";
deleteFile(extractFile);
try (Extract extract = new Extract(extractFile)) {
//create table definition
TableDefinition tableDef = new TableDefinition();
int columnCount = 100;
for (int i = 0; i < columnCount; i++) {
tableDef.addColumn(Integer.toString(i), Type.UNICODE_STRING);
}
//create a table
Table table = extract.addTable("Extract", tableDef);
//create a sample document
//reuse the document for each row to minimize the non-tableau CPU and memory consumption
Random random = new Random();
List<String> rowData = new ArrayList<>();
for (int i = 0; i < columnCount; i++) {
rowData.add(Integer.toString(random.nextInt()));
}
long startTime = System.nanoTime();
System.out.println("Populating table...");
//populate the table
int tableRows = 4000000;
for (int i = 0; i < tableRows; i++) {
//convert input document to tableau row
Row row = new Row(tableDef);
for (int j = 0; j < rowData.size(); j++) {
row.setString(j, rowData.get(j));
}
//add the row to the table
table.insert(row);
}
long endTime = System.nanoTime();
System.out.println(String.format("Total time (ms): %s", (endTime - startTime) /
1000000));
} catch (TableauException e) {
e.printStackTrace();
}
}
private static void deleteFile(String file) {
File extractFile = new File(file);
if (extractFile.exists()) {
extractFile.delete();
}
}
}
当我运行代码时,我收到异常:
线程“main”java.lang.UnsatisfiedLinkError中的异常:无法加载库“TableauExtract”:找不到指定的模块。
at com . sun . jna . native library . loadlibrary(native library . Java:194)at com . sun . jna . native library . getinstance(native library . Java:283)at com . sun . jna . native library . getinstance(native library . Java:244)at com . sun . jna . native . register(native . Java:1065)at com . tableausoftware . extract . extract .(来源不明)at TestTableau.main(来源
我已经将以下jar文件添加到构建路径:
tableauextract.jarjna.jartableaucommon.jar
这个问题怎么解决
不满意的链接错误意味着您正在使用一个 jar 文件,该文件依赖于系统上存在的本机库,位于 Java 知道的位置。从您的堆栈跟踪中,我猜您需要 TableauExtract.dll(可能还有其他)。您需要的库可从 Tableau 站点获得,网址为:
Tableau SDK
一旦安装了它们,您需要告诉Java如何找到库文件所在的目录。这种方法取决于您的操作系统,但是在Unix上,您可以通过将该目录包含在LD_LIBRARY_PATH环境变量中来实现,或者使用-Djava.library.path=标志来实现
如果您将库放入了构建路径中,您是否尝试清理并再次构建项目?
我试图打印TSC-244 Pro条形码标签打印机从GWT网络应用程序。他们给出tsclib.dll。因此,我使用jna.jar并将tsclib.dll文件复制到C:\windows和[my_project_dir]\war\WEB-INF\lib。它的工作,但当我部署到apache Tomcat。它不工作,我有以下错误。请给我解决办法。谢谢。 严重:分派传入的RPC调用com.google.gwt
问题内容: 我使用Maven 将其包含在我的项目中,并将Ghostscript安装到。 但是我仍然会出错 。 我添加到位于“ gsdll64.dll”(即)所在的env变量目录中。还尝试使用启动应用程序。 但是我总是得到(但是当我使用JVM参数启动时,我得到了异常(Eclipse找不到Main类,但是当我启动我的应用程序时,我手动将Eclipse指向Main类))/ 问题答案: 如果复制到工作目录
问题内容: 当我运行程序进行智能卡读取时,会出现此异常。我的设备未连接。请帮我。 问题答案: 这意味着它无法加载您需要的共享库。这可能是因为。 该库不在您的库路径中。 该库名称不正确,例如,Unix上LIBRARY必须为libLIBRARY.so。 您无法执行该库。 该库不适用于操作系统或JVM的位大小。例如64位JVM将不会加载32位库。 您的JRE未正确安装,并且无法加载其自己的库之一。 您正
谷歌搜索了几个小时,似乎没有任何解决方案暗示问题可能是什么,我尝试了所有这些,但它们都不起作用。问题是,我在github上有一个项目(Eclipse项目),我现在正在另一台计算机上尝试处理我的项目。我导入了它,获得了分支,但当我运行项目时,我得到一个 我总是将和连接到git,除了今天,它以前一直都能工作。 我认为问题是JVM试图从包含JRE7的文件夹内部运行文件,但我的项目不在那里。我刚刚注意到控
我正在我的VB中添加VC库。Net程序,例如: 我在运行时遇到了错误: 无法加载DLL“KMpeg4”。dll':找不到指定的模块。(来自HRESULT的异常:0x8007007E) 我把这个库放在了所有地方,包括,但仍然没有运气,这意味着它缺少。 所以我运行了依赖步行者,它给了我丢失的lib: 以及糟糕的lnking功能: dependency walker出现以下错误: 警告:未找到至少一个延