草庐IT

concrypt_openjdk_jni

全部标签

java - 如何在 JNI 中将事件/信号从 C 发送到 Java

是否有任何机制可以通过JNI从C向Java或反之亦然发送异步事件/信号?我需要捕捉从C到Java的信号/事件。 最佳答案 这听起来有点棘手,因为JNI应该只是单向的:Java代码可以调用本地方法,当然它可以回调到Java代码中,但它本身不能启动该过程。但这并非不可能,我认为最直接的解决方案是让native调用阻塞,直到收到信号。另一种选择是编写JVMTI代理,它可以主动干扰正在运行的VM。但是,如果我们谈论的是UNIX信号,那么您可以使用非公共(public)API(因此在未来和SunVM特定的情况下无法保证)但现有的sun.mis

java - 如何将 Typesafe Stack deb repo 与 Oracle Java 6 而不是 OpenJDK 一起使用?

我想通过他们的Deb存储库将TypesafeStack安装到UbuntuServer,但不下载所有OpenJDK包。我通过update-alternatives安装了OracleJDK6并在我的PATH中,安装OpenJDK会破坏一些东西。执行此操作的最佳方法是什么?看来我不能为此使用apt-get--no-install-recommends标志:$>sudoapt-getinstall--no-install-recommendstypesafe-stacksbtReadingpackagelists...DoneBuildingdependencytreeReadingstate

java - 如何解决 Caused by : java. lang.ClassNotFoundException : javax. xml.bind.JAXBException migrating to Java 11(Openjdk-11.0.1)

我已经安装了OpenJDK11.0.1,当我尝试使用mvninstall运行我的应用程序时,出现以下错误,我通过将javax.xml.bind添加到我的pom.xml来添加必要的依赖项作为修复,但是它似乎不起作用,有人遇到过这个问题吗?我还需要做其他事情吗?我的mvn--version返回这个Mavenhome:/usr/local/Cellar/maven/3.5.2/libexecJavaversion:11.0.1,vendor:OracleCorporationJavahome:/Library/Java/JavaVirtualMachines/jdk-11.0.1.jdk/C

java - jprofiler "Hot Spot" View 是否正确说明了通过 JNI 调用的 native 代码消耗的 CPU?

我一直在使用JProfiler分析一段通过JNI调用nativeC代码的Java代码,但我从“CPUView”窗口中得到了奇怪的结果。特别是,“CallTree”选项卡上的信息告诉我调用native代码的Java方法消耗了最多的运行时间,但“HotSpots”选项卡甚至根本没有列出该方法。我还注意到org.joda.time类的类似情况,据报道它们占用了相当大的CPU部分,但并未报告为热点,我想知道这是否是因为它们花费大量时间调用原生日期转换代码。任何对此问题的见解都将不胜感激。编辑:我刚刚发现了一篇非常令人不安的学术论文,题为“EvaluatingtheAccuracyofJavaP

java - 有没有办法通过 JNI 将 Java 数组传递给 C 而无需复制它?

我理解使用GetDoubleArrayElements,是JVM决定是否复制Array的元素。这种情况下,有什么办法可以避免copy吗?如果没有,是否有其他方法可以在不复制的情况下从Java转移到C?我正在传递非常大的数组,我希望我能避免复制。谢谢 最佳答案 JNIguide说:InJDK/JRE1.1,programmerscanuseGet/ReleaseArrayElementsfunctionstoobtainapointertoprimitivearrayelements.IftheVMsupportspinning,th

java - 为什么这些泛型不能在 OpenJDK7 中编译,但可以在 OpenJDK6 中编译

classHasId{}classHasStringIdextendsHasId{}classAlertextendsHasStringId{}classBaseController>{//abstractClassgetModelClass();}classAlertControllerextendsBaseController{//errorhere//@OverrideClassgetModelClass(){//returnAlert.class;//}}在OpenJDK6上编译良好,但在OpenJDK7上给出:AlertController.java:50:error:typ

java - 如何调试 JNI/C 库?

我们这里有一个系统,它使用JavaJNI调用C库中的函数。在Solaris上运行的一切。我在某个地方遇到了字符串编码问题。用C编写的函数返回一个阿拉伯字符,但JNI方法接收一个具有另一种编码的字符串。我已经尝试设置$NLS_LANG和用于编码的vm参数,但没有任何效果。所以我需要能够同时调试C代码和JavaJNI。调试它的最佳方法是什么? 最佳答案 dbx调试器(SunStudio的一部分)可以附加到JVM进程,让您在Java代码和native代码之间单步执行。该功能的代号为“jdbx”,尽管它都是dbx的一部分。它没有得到大力推广

java - 从理论上讲,我可以获得 openJDK JIT,并将我的 java 代码编译为 native 代码吗?

我只是想知道如何摆脱javajre依赖并生成native代码并将编译后的代码作为应用程序交付?那有可能吗?附言我知道gcj编译器是它在做什么? 最佳答案 编译后的字节码还是会依赖java虚拟机。JIT无法在JVM容器之外创建“有意义”的代码。是的,结果是一堆针对目标平台的有效指令。但是您仍然需要实际的堆栈、堆和垃圾收集器(仅举几个必需的构建block)。 关于java-从理论上讲,我可以获得openJDKJIT,并将我的java代码编译为native代码吗?,我们在StackOverfl

java - ACR122 USB SDK - JNI 调用 Winscard.dll

我们购买了ACR122USBSDK用于NFC测试。我们想为ACR122U-A2NFC阅读器构建测试桌面应用程序。我们正在MicrosoftWindows7平台上用Java开发它。我们预计,为了从Winscard.dll使用PC/SC,我们需要进行JNI调用。为此,应准备用于JNI调用的C/C++包装器库。我认为这应该是SDK的一部分,因为示例应用程序引用了JNI包装器Jacspcsc.dll,但该库不存在。有没有人有类似的经历?是否有可用于Winscard.dll的JNI包装器?谢谢斯腾 最佳答案 如果您为阅读器安装了PC/SC驱动

java - 在 Linux 下使用 OpenJDK 运行 Eclipse 有什么问题吗?

注意:这个问题来自2014年。截至2019年,情况有所不同。OpenJDK是所有不同发行版的基础,并且对所有发行版的行为都应该相同。解决Ubuntu等Linux发行版的Java问题的标准方法是说“使用SunJDK而不是OpenJDK”。出于多种原因,我只想使用Ubuntu随附的Java,而不必从合作伙伴存储库安装和下载或下载tarball。我在Ubuntu11.10下使用Eclipse3.7.1玩了一些,没有发现任何明显的问题。问题是:在Ubuntu上默认安装的(EDIT:OpenJDK)Java是否有什么不能正常工作,或者有什么我应该注意的? 最佳答案