草庐IT

check_jni

全部标签

java - 可以让 JNI 支持类路径中的通配符扩展吗?

我有一个通过JNI调用Java的C二进制文件。我将CLASSPATH设置为somedir/*以获取somedir中的所有jar。当我运行二进制文件时,找不到所需的类定义。当我运行时javathat.class's.name从同一个命令行,成功找到类。如果我明确地将somedir/中的所有jar添加到类路径,一切都很好,但这会导致非常长的类路径,我想避免。通过JNI执行的JVM是否支持类路径的通配符扩展?能做到吗? 最佳答案 我通过阅读热点源码找到了答案。只有通过CLASSPATH或-cp/-classpath传递的路径才能进行通配符

java - j_security_check 重定向

我正在Tomcat环境中学习Javaservlet。我正在学习如何使用j_security_check使用基于表单的登录身份验证。因此,在我的servlet中,我有一个包含j_username和j_password的登录页面。在该servlet的web.xml文件中,我有一个欢迎页面列表,指示我的登录页面“landing.html”。因此,理想情况下,在成功登录后,我希望用户被重定向到“landing.html”页面。没有身份验证(没有基于表单的身份验证),我的servlet打开并按预期转到“landing.html”页面(“localhost:8080/MyServlet”-显示la

Java JPA : Performant check if Entity is already in DB

使用JPA检查实体是否已在数据库中的最佳方法/最佳实践是什么?我正在编写一个将主机信息添加到数据库的客户端。例如附加的存储lun、hba等...如果我想为主机添加一个Lun,我必须检查该lun是否已经在数据库中。(Lun可以附加到另一个主机上)。我看到了2种可能性:我选择了Lun,检查它是否已经在数据库中尝试插入Lun并检查异常(唯一约束)有人有这方面的经验吗?BR,雷内 最佳答案 entityManager.find(SomeEntity.class,id)Returns:thefoundentityinstanceornulli

java - 如何通过 JNI 将 HashMap 从 Java 发送到 C

我有一个Object,它有一个HashMap字段。当Object传递给C时,我如何访问该字段?Object的Class具有以下字段:privateStringhello;privateMapparams=newHashMap(); 最佳答案 您问题的答案实际上归结为为什么您要传递一个Map到C而不是迭代你的Map在Java中并将内容传递给C。但是,我有什么资格质疑为什么?你问如何访问HashMap(在您提供的代码中,Map)字段?用Java为它编写一个访问器方法,并在传递容器时从C调用该访问器方法Object.下面是一些简单的示例代

java - 使用 java 8 方法引用的 Null Check 方法可能吗?

由于丰富的分析,我们的Java代码中充斥着可为null对象的方法结果的输出。看起来像这样namedObject==null?"?":namedObject.getName()是否可以为此编写一个静态方法?(例如看起来像这样):Util.nvl(namedObject,NamedObject::getName,"?")=Util.nvl会是什么样子?我尝试了一些搜索谷歌,但没有得到任何结果。这不起作用:publicstaticTnvl(Tvalue,Functionmethod,TnullSubstition){returnvalue==null?nullSubstition:(T)me

java - 使用调用 API 的 JNI 内存管理

当我使用JNI方法构建一个java对象时,为了将它作为参数传递给我使用JNI调用API调用的java方法,我该如何管理它的内存?这是我正在使用的:我有一个C对象,它有一个比free()更复杂的析构函数方法。此C对象将与Java对象相关联,一旦应用程序完成了Java对象,我就不再需要C对象了。我正在像这样创建Java对象(为清楚起见省略了错误检查):c_object=c_object_create();class=(*env)->FindClass(env,"my.class.name");constructor=(*env)->GetMethodID(env,class,"","(J)

java - 为什么 dtruss 不显示此 JNI 代码中的 select 系统调用?

在MacOS上调查这个JDK错误时,我遇到了我不理解的系统调用跟踪输出:Tomcatstartupfailsdueto'java.net.SocketExceptionInvalidargument'onMacOSX简短版本:在MacOS上,JDK使用select()而不是poll()。因此,如果分配了超过1024个文件描述符,我们推断NET_Timeout中的select()调用失败,导致出现带有“无效参数”消息的SocketException。但是,当我跟踪系统调用时,我没有看到select()系统调用的证据,也没有看到任何失败并设置EINVAL的调用,因此我认为这是一个潜在原因。

java - 如何在没有 Valgrind 错误的情况下调用 JNI_CreateJavaVM?

在valgrind下编译和运行以下代码时,我一直收到“Invalidwriteofsize4”错误。有没有一种调用JNI_CreateJavaVM()的简洁方法,这样valgrind就不会出错?#include#include#includeintmain(){JavaVMInitArgs*vm_args=calloc(1,sizeof(JavaVMInitArgs));JavaVM*jvm=NULL;JNIEnv*env=NULL;vm_args->version=JNI_VERSION_1_6;vm_args->nOptions=0;vm_args->options=NULL;JN

java - 单选按钮在 Struts 1 ActionForm 中没有 "checked"

我有一个包含许多问题的JSP页面和一个包含输入名称和值的Map的ActionForm。当我加载页面时,未设置单选输入的值(选中属性),但复选框已设置。表单定义:radio(jsp):"styleClass="pepperoni1"value="1">Yes"styleClass="pepperoni0"value="0">No广播(html):YesNo复选框(jsp):"styleClass="pepperoni"/>复选框(html):通过getBoolean/setBoolean页面加载/表单提交访问时,checked属性未设置,但值不为空.我的ActionForm类有这些可用的

java - Eclipse:JVM 共享库不包含 JNI_CreateJavaVM 符号

MacOSX10.9上的Eclipse4.4.0,当我尝试运行它时JVM8发出警告:“JVM共享库“/Library/Java/JavaVirtualMachine/jdk1.8.0_20.jdk/Contents/Home/bin/.../jre/lib/server/libjvm.dylib”不包含JNI_CreateJavaVM符号”应用程序没有启动。我按照Shan的8/25说明编辑了Info.plist,但我仍然遇到同样的错误。我也从Apple的网站下载并安装了Java,但我仍然遇到同样的错误。感谢您的帮助。 最佳答案 如果