我有一个正确访问Windows XP上的串行端口的Java程序,并且我试图让它在我的Windows 7(Home Premium)框中运行。我正在Eclipse中开发。
该程序目前使用rxtx类。我的原始下载(对于xp)似乎是32位特定的,所以我得到了Cloudhopper 64位实现并将其放在指定的目录中(在与安装说明匹配的范围内)并将jar添加为外部jar到我的项目。
我现在对rxtx jar中任何类的使用都有以下错误:
由于限制,Y类型的字段X无法访问 必需的库c:\ Program Files \ Java \ jre6 \ lib \ ext \ RXTXcomm.jar
我在错误上发现的是访问限制与Java许可协议有关;所有这些类都在java包之外,所以我不明白那个问题是什么。我想,但如果我能解决问题而不理解它,我想我会。
我找到了几个论坛帖子,几乎没有比几年前更多,声称通过
来解决问题从构建路径中删除JRE库并重新添加它。这对我的情况没有影响。
消除了eclipse偏好中的错误和警告错误;再一次,没有帮助。
我找到了一个商业软件包可能能够以数百美元的价格完成这项工作,但我只是在开发一个我自己的项目,可能永远不会产生任何收入,所以它不值得数百美元美元给我买东西为此目的。此外,似乎开源社区中的某些东西如此接近。
所以我的问题有两个层次:
有人可以帮我解决Cloudhopper的rxtx实现的访问限制,对于eclipse Indigo中的Java 6吗?
是否有另一种方法可以使用Java访问Windows 7上的串行端口更容易/更好/至少没有访问限制问题?
答案 0 :(得分:1)
我认为现在必定是这个非java包的库在JRE的空间,尽管我还没有验证过。无论如何,我把它移出然后,在注意到我认为在一个项目中出错的东西是不同项目中的错误,这是因为第二个项目没有将其列为所需的库,这有助于很多。
这个和我之前的32位之间确实存在一些细微的差别 - 用eclipse的帮助需要15-30分钟来理顺 - 但我现在正在阅读我的设备! / p>
答案 1 :(得分:0)
根据您的描述,这听起来像使用sun。*包时的标准编译器错误。在处理重用Sun的Base64类的程序时,我已经遇到过这种情况。
基本上,您正在访问JRE的内部 - 这些内容不需要在发行版之间保持一致,并且不打算由Sun / Oracle之外的开发人员访问。您可以在Eclipse中禁用此错误,或将其降级为警告,但它有充分的理由警告您。如果您将其更改为警告或在Eclipse中忽略它,您仍然可以编译和使用您的程序,但您应该考虑编写自己的库来提供相同的功能或寻找第三方库。否则,JRE更新可能会破坏您的程序。
您提到您已经尝试禁用此警告,但它没有任何效果 - 之后您是否执行了干净的构建?试试Project->Clean...
,看看是否还有错误。
答案 2 :(得分:0)
Windows -> Preferences -> Java Compiler