64位系统上的Java Native Interface 32位dll

E:\Code\Java\JNITest>java test Exception in thread “main” java.lang.UnsatisfiedLinkError: E:\Code\Java\JNITest\test.dll: Can’t load IA 32-bit .dll on a AMD 64-bit platform at java.lang.ClassLoader$NativeLibrary.load(Native Method) at java.lang.ClassLoader.loadLibrary0(Unknown Source) at java.lang.ClassLoader.loadLibrary(Unknown Source) at java.lang.Runtime.loadLibrary0(Unknown Source) at java.lang.System.loadLibrary(Unknown Source) at test.main(test.java:16)` 使用Java Native Interface时遇到了导致此错误的问题。 我相信这是因为我使用MinGW编译了.dll,它编译成32位.dll而我的系统是64位,因此我的Java运行在64位。 反正有没有迫使我的Java以32位运行?

在Tomcat中读出传入证书

我使用带有客户端身份validation的tomcat http连接器。 如果客户端启动与我的服务器的新连接并发送其证书,我是否可以获取证书并从我的java代码中读取传入证书的公用名。 如果有,怎么样? 谢谢阿迪

64位Windows上的Javax.comm API

我正在使用javax.comm API来帮助我的程序通过串口与硬件进行通信。 我正在使用Windows 7和NetBeans IDE 9。 我使用常见的Java程序来检查我的PC上的可用端口。 程序编译并运行没有错误。 然而,它什么都没有。 如何在Windows上使用javax.comm API? 似乎win32com.dll不适用于64位操作系统。

Play Framework 2:阅读Build.scala中定义的应用程序版本

我使用Play Framework 2.0(2.0.3)。 我有一个Java项目,想要阅读appVersion定义的应用程序版本( appVersion )。 我已经看到的是,可以从提供给Global.java的Application对象中读取某些配置细节,但是没有找到名为appVersion或类似的键。

找不到元素’beans’的声明

我有spring-3.2.0.RC1.jar的spring jar,并尝试从这里给出的教程实现Apache ActiveMQ helloWorld程序。 xml配置文件是: 主要: public static void main(String[] args) throws JMSException { System.out.println(“LISTNER STARTED”); ApplicationContext context = new FileSystemXmlApplicationContext(“src/com/jms/helloworld/config/JMSConfig.xml”); } **Exception on console** LISTNER STARTED log4j:WARN No appenders could be found for logger (org.springframework.core.env.StandardEnvironment). log4j:WARN Please initialize the log4j system properly. log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info. Exception in thread “main” org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line […]

反序列化时忽略属性

我有一个简单的接口,带有getter和setter属性。 public interface HasMoney { Money getMoney(); void setMoney(Money money); } 我有另一个类UserAccount,它实现了这个接口。 public class UserAccount implements HasMoney { private Money money; @Override Money getMoney() // fill in the blanks @Override void setMoney(Money money) // fill in the blanks } 我的问题是我想序列化money属性但在反序列化时忽略它,即不接受用户对此属性的任何值。 我在setter上尝试了@JsonIgnore,在getter上尝试了@JsonIgnore(false),它确实忽略了它,但它也在序列化它时也这样做了。 我在setter上尝试了@JsonIgnore,在getter上尝试了@JsonProperty,只是为了明确告诉Jackson我们打算跟踪这个属性,当money属性被发送到服务器并且Jackson试图反序化它抛出MalformedJsonException时,这似乎会崩溃应用程序:不能构造Money类型的对象。 最奇怪的是将@JsonIgnore放在setter上并且setter上的@JsonProperty适用于大多数情况下属性是原始的。

FullScreen Swing组件无法在Mac OS X Mountain Lion上的Java 7上接收键盘输入

更新12/21: 7u10最近发布。 确认: 问题仍然存在 值得庆幸的是,解决方法仍然有效! 更新11/7: 我们有一个解决方法! 来自Oracle的Leonid Romanov在openjdk.java.net邮件列表中提供了一些有关正在发生的事情的见解 : 好吧,虽然我还不是100%肯定,但看起来当我们进入全屏时,其他一些窗口成为第一响应者,因此发出哔哔声。 您可以尝试以下解决方法:在框架上调用setFullScreenWindow()之后,调用setVisible(false),然后调用setVisible(true)。 理论上,这应该恢复正确的第一响应者。 似乎有用的代码片段很简单: dev.setFullScreenWindow(f); f.setVisible(false); f.setVisible(true); 我更新了示例代码,可以打开和关闭此修复程序; 每次窗口进入全屏时都需要它。 在我更复杂的应用程序的更大的上下文中,我仍然在全屏窗口中的子组件上遇到键盘焦点问题,鼠标单击导致我的窗口失去焦点。 (我猜它会转到上面提到的不受欢迎的第一响应者窗口。)当我有关于这种情况的更多信息时,我会报告回来 – 我还不能在较小的样本中重现它。 更新10/31: 示例代码的主要更新: 包括在FullScreen独占模式和Lion风格的全屏模式之间切换 侦听KeyboardFocusManager以显示当前焦点组件的层次结构 使用输入映射和KeyListener来尝试捕获输入 还与同事一起进行了更多挖掘,试图找出问题: 在一方面,我们尝试覆盖RT.jar中的一些方法,以查看屏幕设备的选择方式是否存在问题。 还尝试了Toolkit.beep()function的入口点,以查看警报声是否来自Java端 – 似乎没有。 另一方面,很明显即使是本机方也没有接收键盘事件。 同事将此归因于7月6日从AWTView到NSWindow的转换。 已找到一些现有的Oracle错误,您可以在此处查找: 8000276:[macosx] graphicsDevice.setFullScreenWindow(frame)崩溃JVM 8000430:[macosx] java.awt.FileDialog在macosx上发布 7175707:[macosx] PIT:8 b43不再在AppKit线程问题上运行 更新10/26: 感谢@maslovalex下面关于工作于7u5的Applet的评论,我回过头来仔细研究了与OSX的JDK版本的兼容性: 10.7.1 with 7u4:Fullscreen Works! 10.7.1 with 7u5:Fullscreen Works! 10.7.5与7u5:全屏工作! 10.7.5与7u6:全屏rest:( […]

Java中exception的throws关键字

当你这样做: public class Blah { public void doBlah() throws BlahException { } } 添加throws BlahException真的有什么作用? 它基本上将任何exception分组到那个吗? 即如果有exception,无论它是什么,将始终使用BlahException抛出?

将GregorianCalendar与SimpleDateFormat一起使用

因此,我一直在思考这个(应该是)简单的练习,让程序将日期字符串转换为GregorianCalendar对象,格式化它,并在完成时将其作为字符串再次返回。 这是一个程序的最后一点,它从文件中获取文本,将其分解为单个记录,然后将记录分成单独的数据并将它们分配给一个人对象。 我已经在多个地方检查了代码,代码完全按照它应该执行的操作,直到我调用格式函数,这会抛出IllegalArgumentException。 GergorianCalendar对象被赋予它应该被分配的值(虽然打印它是另一个故事,如下所示……),但格式不接受格式化的对象。 不幸的是,导师不太确定如何使用GregorianCalendar和SimpleDateFormat(但指派我们使用它们)并且说“Just Google it”……我试过,我发现没有任何帮助。 我到目前为止的代码是: public class DateUtil { public static GregorianCalendar convertFromDMY(String dd_mm_yy) throws ParseException{ // this actually works, got rid of the original code idea String[] splitDate = dd_mm_yy.split(“-“); int days = Integer.parseInt(splitDate[0]); int month = Integer.parseInt(splitDate[1]); int year = Integer.parseInt(splitDate[2]); // dates are going in right, checked in print […]

使用本地化排序字符串列表

我想按照用户区域设置排序下面的字符串列表 List words = Arrays.asList( “Äbc”, “äbc”, “Àbc”, “àbc”, “Abc”, “abc”, “ABC” ); 对于不同的用户区域设置,排序输出应根据区域设置而不同。 如何按用户区域设置对上面的列表进行排序? 我试过了 Collections.sort(words , String.CASE_INSENSITIVE_ORDER); 但是这不适用于本地化,那么如何将locale参数传递给Collections.sort()还是有其他有效方法吗?