I am using Jacob jar file in my java application.
This Jacob jar file comes with a .dll file. I have added Jacob jar file to my classpath. But when I execute my application a runtime error occurs as
"couldn't load jacob-1.15-M3-x86.dll file"
Run Code Online (Sandbox Code Playgroud)
How can I load this .dll file?
Edited:=================================================================================
I had set the "path" environment varaible to the dir that contains my .dll file and loading that .dll file as follows
static {
System.loadLibrary("jacob-1.15-M3-x86.dll");
}
Run Code Online (Sandbox Code Playgroud)
but the following …
这就是我想要做的.我在Web应用程序中使用JPA持久性,但我有一组单元测试,我想在容器外运行.
我的主应用程序位于我的主应用程序persistence.xml的META_INF文件夹中,它在容器(Glassfish)中运行良好.
我persistence.xml在META-INF我的test-classes目录的文件夹中放了第二个.这包含一个单独的持久性单元,我只想用于测试.在eclipse中,我将此文件夹放在类路径中比默认文件夹更高,它似乎工作.
现在,当我直接从命令行运行maven构建并尝试运行单元测试时,将persistence.xml忽略覆盖.我可以META-INF在maven生成的test-classes目录的文件夹中看到覆盖,我希望maven测试使用这个文件,但事实并非如此.我的Spring测试配置覆盖,以类似的方式实现了工作.
我很困惑是否persistence.xml位于类路径中.如果是,我的覆盖应该像弹簧覆盖一样工作,因为maven surefire插件解释 "[测试类目录]将包含在测试类路径的开头".
我错误地预测了persistence.xml文件的位置吗?
我可以(并且已经)在生产persistence.xml文件中创建第二个持久性单元,但是将测试配置放入此生产文件中会感觉很脏.关于如何实现我的目标的任何其他想法都是受欢迎的.
在我看来,在.classpath等文件中添加属性svn:ignore是个好主意.我同时使用Windows(work,ugh)和Linux开发环境,每次与存储库同步时,它都会覆盖我正在处理的任何一台机器上的.classpath.
我尝试在Team Sync透视图中右键单击.classpath文件,但svn:ignore选项显示为灰色.
任何想法我可能:1.从源代码控制中获取此项,2.将其添加到忽略列表?
任何其他文件智能添加到此列表?
我一直试图让ant执行一些用junit编写的测试.任何建议将不胜感激.我对ant和Java都很陌生,所以请耐心等待.
作为一个快速总结,我正在做的是尝试让ant执行一个非常简单的测试,类路径看起来很好,考虑到ant -debug的输出.我在类路径中明确提到类文件的测试时遇到空测试错误.此外,我得到一个ZipException,我不知道那是什么.
这是我正在尝试运行的测试用例:
package testmanagment;
import junit.framework.*;
public abstract class EasyTest extends TestCase
{
public EasyTest(String name)
{
super(name);
}
protected void setUp()
{}
protected void testSeeMee() throws Exception
{
assertTrue(true);
}
protected void testSeeMeetoo() throws Exception
{
assertTrue(true);
}
}
Run Code Online (Sandbox Code Playgroud)
包中有一些测试,这只是为了看看为什么一切都失败了.它失败了ZipException.
这是我的make文件的一小部分:
<property name="src" value="src/"/>
<property name="build" value="build/"/>
<property name="test" value="${build}test/"/>
<property name="testreportsdir" value="${test}reports/"/>
<property name="classdir" value="${build}classes/"/>
<property name="lib" value="lib/"/>
<path id="files-classpath">
<fileset dir="lib/" >
<include name="*.jar"/>
</fileset>
</path>
<path id="tests-classpath">
<path refid="files-classpath"/>
<pathelement location="${classdir}/"/>
</path>
<path id="tests-runpath"> …Run Code Online (Sandbox Code Playgroud) 我用公共和私有RSA密钥创建了一个JKS文件.当我使用外部路径(如c:/file.jks)加载此文件时,程序就像魅力一样执行.但是,如果我尝试从类路径加载此相同的文件,我得到此异常:
java.io.IOException: Invalid keystore format
Run Code Online (Sandbox Code Playgroud)
这是用于加载jks的代码:
KeyStore keyStore = KeyStore.getInstance("JKS");
InputStream stream=this.getClass().getResourceAsStream("/lutum.jks") ;
keyStore.load(stream,passe);
Run Code Online (Sandbox Code Playgroud)
唯一的区别是我在外部加载时使用FileInputStream和完整路径.我做错了什么?
我正在尝试使用IntelliJ 13及其内置的Tomcat部署插件运行Java/Spring/Hibernate/Ivy应用程序.我正在使用Tomcat 8.0.9,但我也尝试使用Tomcat 6.0.39.当我试图启动Tomcat时,我正在创建一个工件; 爆炸性战争更加具体.我正在使用Ivy来解决我的依赖关系,这是因为它是一个不使用Maven的遗留应用程序.愚蠢,我知道.
当尝试使用任何版本的Tomcat从IntelliJ内部运行此应用程序时,我在"服务器"日志中收到以下消息:
C:\dev\apache-tomcat-6.0.39\apache-tomcat-6.0.39\bin\catalina.bat run
[2014-07-01 05:33:09,056] Artifact Kiosk:war exploded: Server is not connected. Deploy is not available.
Using CATALINA_BASE: "C:\Users\{username}\.IntelliJIdea13\system\tomcat\Unnamed_Kiosk_4"
Using CATALINA_HOME: "C:\dev\apache-tomcat-6.0.39\apache-tomcat-6.0.39"
Using CATALINA_TMPDIR: "C:\dev\apache-tomcat-6.0.39\apache-tomcat-6.0.39\temp"
Using JRE_HOME: "C:\apps\Java\jdk1.7.0_51"
Using CLASSPATH: "C:\dev\apache-tomcat-6.0.39\apache-tomcat-6.0.39\bin\bootstrap.jar"
Connected to the target VM, address: '127.0.0.1:57131', transport: 'socket'
Jul 01, 2014 5:33:09 PM org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\apps\Java\jdk1.7.0_51\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\apps\Java\jdk1.7.0_51\bin;C:\Apps\TortoiseSVN\bin;C:\Program Files (x86)\Intel\OpenCL SDK\2.0\bin\x86;C:\Program Files (x86)\Intel\OpenCL SDK\2.0\bin\x64;C:\dev\apache-tomcat-6.0.39\apache-tomcat-6.0.39;C:\dev\apache-maven-3.2.1-bin\apache-maven-3.2.1\bin;C:\dev\SlikSvn\bin;.;;.;;. …Run Code Online (Sandbox Code Playgroud) 我下载了SymmetricDS,一种用于数据库复制的工具,并尝试在我的 Windows7 机器上运行它。该程序可以从命令行启动,它适用于 Windows 终端。但是我总是更喜欢Git Bash命令行的东西。sym但是,当我运行命令时,出现错误:
Error: Could not find or load main class org.jumpmind.symmetric.SymmetricLauncher
Run Code Online (Sandbox Code Playgroud)
这个工具是用Java编写的。我安装了 JDK 1.8。Git的Bash的继承所有环境变量,包括$PATH和$JAVA_HOME从Windows。但是为什么它会抱怨找不到类?
该sym命令实际上是在运行以下命令:
exec "$SYM_JAVA" $SYM_OPTIONS -cp "$CLASSPATH" org.jumpmind.symmetric.SymmetricLauncher "$@"
Run Code Online (Sandbox Code Playgroud)
所有的 jars 都位于lib应用程序的根目录下。类路径定义在sym.service.conf内部conf目录中:
# Java Classpath
wrapper.java.classpath.1=patches
wrapper.java.classpath.2=patches/*
wrapper.java.classpath.3=lib/*.jar
wrapper.java.classpath.4=web/WEB-INF/lib/*.jar
# Application main class and arguments
wrapper.app.parameter.1=org.jumpmind.symmetric.SymmetricLauncher
Run Code Online (Sandbox Code Playgroud)
我echo $CLASSPATH在exec打印出类路径之前添加了它,它似乎确实让所有这些都正确:
/c/Users/dnj0109/Apps/symmetric-server-3.8.29/patches:
/c/Users/dnj0109/Apps/symmetric-server-3.8.29/patches/*:
/c/Users/dnj0109/Apps/symmetric-server-3.8.29/lib/*:
/c/Users/dnj0109/Apps/symmetric-server-3.8.29/web/WEB-INF/lib/*
Run Code Online (Sandbox Code Playgroud) 我有一个读取系统属性的类加载器应用程序 sun.boot.class.path
但是我在 JDK 9 的发行说明中发现此属性已被删除。
System.getProperty("sun.boot.class.path"); // In JDK 9/10 this returns null
Run Code Online (Sandbox Code Playgroud)
但是我还是想在JDK 10中检索这个属性值,怎么做呢?
我期待如下值:
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/resources.jar:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/rt.jar:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/sunrsasign.jar:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/jsse.jar:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/jce.jar:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/charsets.jar:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/jfr.jar:/usr/lib/jvm/java-8-openjdk-amd64/jre/classes
Run Code Online (Sandbox Code Playgroud)
供参考:
我不想使用该-Xbootclasspath选项。只需要路径值。
我有一套单元测试,当通过./gradlew :project:testDebugUnitTests. 但是,当我在 Android Studio 中运行它们时,我遇到了一个模糊的问题,我最终使用与此 Gradle 命令不同的类路径追踪到了似乎是 Android Studio 的问题。
有问题的依赖项是 Byte Buddy,我遇到了此错误的一个变体,该变体已在 1.9.0 中修复。运行./gradlew dependencies表明,1.9.10将在我的构建中使用,但是当我看到在命令行是Android Studio中使用运行我的测试中,该-classpath参数包含两个1.8.10和1.9.10和1.8.10版本列表中的第一个。
我真的对可能导致这种情况的原因感到困惑,因为我原以为 Android Studio 会从其 Gradle 集成中获取类路径。我喜欢任何关于为什么会发生这种情况或如何进一步调试的线索。