Tag: java 7

在Play Framework中使用Files.createSymbolicLink获取FileSystemException“客户端不拥有所需的权限”

我正在尝试在Play中使用新的Java 7 Files.createSymbolicLink()方法! 框架,我得到以下exception: RuntimeException occured : java.nio.file.FileSystemException: c:\work\foo\bar: A required privilege is not held by the client. 这是我第一次遇到Java的权限模型,所以我理解发生了什么,但还不知道如何修复它(我想给控制器更多权限)。 如果有人能够比我找到答案更快地回答这里,我(以及未来的读者)将不胜感激。

java @SafeVarargs为什么私有方法需要是最终的

我在内部类中有一个私有方法是私有的我想使用SafeVarargs注释。 但是,我需要有静态或最终方法。 为什么私有方法也需要最终? 这不是多余的吗?

为什么getWindow()无法解析?

我无法解析getWindow(); 出于某种原因的方法…… import java.applet.Applet; import netscape.javascript.JSObject; public class Class466 { public static void method6020(Applet applet, String string, int i) throws Throwable { try { JSObject.getWindow(applet).eval(string); } catch (RuntimeException runtimeexception) { throw Class346.method4175(runtimeexception, new StringBuilder() .append(“tf.a(“).append(‘)’).toString()); } } public static Object method6021(Applet applet, String string, short i) throws Throwable { try { return JSObject.getWindow(applet).call(string, null); } […]

重点关注JDK7和本机组件的问题

我们有一个swing应用程序,它通过JNIWrapper嵌入IE ocx组件。 从jdk6切换到jdk7后,我们开始注意焦点问题。 当嵌入式IE显示带有文本字段的网页(例如谷歌搜索页面)而不是麻烦开始时: 浏览器“捕获”焦点,因此您可以开始在搜索文本字段中输入内容。 键入的每个键都进入IE ocx。 但是,摆动似乎忽略了这种焦点变化。 即使我将焦点更改为swing文本字段(并且swing显示闪烁的输入光标),所有键入的键都会转到IE ocx “修复”焦点的唯一方法是取消激活并激活主框架。 之后,焦点似乎是一致的。 但是,如果我再次点击谷歌搜索文本字段,焦点将再次被打破。 似乎jdk7中的焦点处理有很大的变化。 从链接 : 在Windows平台上,已经实现了“合成焦点”的概念。 这意味着焦点所有者组件仅模拟其可聚焦状态,而实际本机焦点设置为“焦点代理”组件。 此组件接收键和输入方法本机消息,并将它们分派给焦点所有者。 在JDK7之前,焦点代理组件是框架/对话框内的专用隐藏子组件。 在JDK7中,框架/对话框本身用作焦点代理。 现在,它代理不仅关注拥有窗口中的组件,还关注所有子组件。 一个简单的窗口永远不会接收本机焦点,并依赖于其所有者的焦点代理。 此机制对用户是透明的,但在调试时应予以考虑。 任何人都有想法“修复”这种行为? 编辑 :这里有一些代码用JxBrowser重现问题 public static void main(String[] args) { Browser browser = BrowserFactory.createBrowser(BrowserType.IE); JFrame frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.getContentPane().add(browser.getComponent(), BorderLayout.CENTER); JPanel panel = new JPanel(); frame.getContentPane().add(panel, BorderLayout.NORTH); textField = new […]

Java 7的BigInteger操作有多复杂?

目前BigInteger中的方法有多大的复杂性, divide和pow ? 没有提到文档中的计算复杂性(也没有提到其他任何地方)。

Java nio FileSystem Watcher锁定目录。 删除变得不可能

我正在使用Java7的新function来查看更改目录(如以下教程中所述: http : //download.oracle.com/javase/tutorial/essential/io/notification.html ) 观看本身(几乎)没有问题。 或多或少我有两个问题,我希望你们中的一些人知道如何处理它。 添加一个文件夹进行监视后,VM可以访问它并且不会释放它。 这应该不是一个大问题。 但是,如果您正在另一个目录中创建一个目录,那么还有一个目录。 (例如,您在目录c:\tmp\a中创建目录b ,在b中创建目录c ( c:\tmp\a\b\c ))无法删除目录a ,因为访问了VM到b和c 。 如果要删除所有文件夹(例如,使用Windows资源管理器),则必须首先删除c ,然后删除c ,然后删除a 。 这很奇怪,但这种方式有效(虽然不方便) 这个问题似乎是第一个问题的结果。 如果有时发生了很多变化(或多或少)我得到一个exception,告诉我,新创建的文件夹被另一个进程使用,并且无法访问它。 这很奇怪,因为我认为收到通知无关紧要。 并且因为在完全抛出此exception时并不完全清楚。 您是否知道如何使锁定或者至少让用户能够以经典方便的方式删除这样的目录结构?

TimSort什么时候抱怨破坏的比较器?

Java 7 更改了排序算法 ,使其抛出一个 java.lang.IllegalArgumentException:“比较方法违反了它的一般合同!” 在某些情况下,当使用的比较器出现故障时。 是否可以判断比较器中的哪种错误导致这种情况? 在我的实验中,如果x!= x无关紧要,如果x <y和y <z但z <x也没关系,但是如果x = y且y = z但是x <z对于某些值确实很重要x,y,z。 这通常是这样吗? (如果对此有一般规则,可能更容易在比较器中查找错误。但当然最好修复所有错误。:-)) 特别是,以下两个比较器没有让TimSort抱怨: final Random rnd = new Random(52); Comparator brokenButNoProblem1 = new Comparator() { @Override public int compare(Integer o1, Integer o2) { if (o1 o2) { return Compare.GREATER; } return rnd.nextBoolean() ? Compare.LESSER : Compare.GREATER; } }; […]

Java OutOfMemoryexception:加载zip文件时出现mmap错误

我使用JVM参数在生产环境(rhel 5.2 x64,oracle jre 1.7_05,tomcat 7.0.28)上运行我的应用程序: -Xms8192m -Xmx8192m -XX:MaxPermSize=1024m -Doracle.net.tns_admin=/var/ora_net -XX:ReservedCodeCacheSize=512m -XX:+AggressiveOpts -XX:+UseFastAccessorMethods -XX:+UseStringCache -XX:+OptimizeStringConcat -XX:+UseCompressedOops -XX:+UseG1GC -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9026 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false 经过几次,我有像这样的堆栈跟踪: Java HotSpot(TM) 64-Bit Server VM warning: Attempt to deallocate stack guard pages failed. Java HotSpot(TM) 64-Bit Server VM warning: Attempt to allocate stack guard pages failed. mmap failed for CEN and END part […]

JDK 1.7 Throwable`addSuppressed()`方法

好吧,我通过相关问题,我阅读了JDK 1.7的源代码,但我找不到答案。 在这个问题中,我想完全忽略fillInStackTrace 。 从JDK 1.4开始,添加了initCause()方法。 例如,当您使用核心reflection来调用该方法时,您会收到InvocationTargetException,其中包含具有目标exception的原因。 当我看到这个function时,我开始在这样的场景中使用它 try { //contains some code that can throw new IOException(); } catch(IOException e){ throw new RuntimeException(e); } 所以,我抓住了一个exception,我还没准备好在这里处理它并且我重新抛出新exception,其中我有原始exception作为原因。 在一些e.getCause()不好的RuntimeException中,但是我使用了自定义exception,所以有时我也调用e.getCause()以便在外部块中正确处理这个exception。 这是JDK 1.7之前的情况。 为什么以及何时应该使用addSuppressed() ? 我应该将上面的代码更改为 try { //contains some code that can throw new IOException(); } catch(IOException e){ RuntimeException re= new RuntimeException(e.getMessage()); re.addSuppressed(e); throw re; } 作为一个额外的问题,为什么addSuppressed()返回Throwable因为initCause()允许throw (RuntimeException)new […]

在Java 1.7上编译Java 1.5仍然有效吗?

我最近在我的一个项目中转到Java 7。 我声称它可以在Java 1.5上运行,因为我在Java 6或7中没有任何依赖。但是在今天编译时我注意到了这一点: bootstrap class path not set in conjunction with -source 1.5 谷歌发现这个警告的信息很少。 这是否意味着您无法从Java 1.7编译为Java 1.5?