Tag: java 7

如何修复“无法编写核心转储。 运行java时,核心转储已被禁用“错误

我正在使用eclipse开发一个Web应用程序,当我尝试在eclipse中运行我的应用程序时,我遇到了一个问题。 # # A fatal error has been detected by the Java Runtime Environment: # # SIGSEGV (0xb) at pc=0x00007f41e4e610b0, pid=3463, tid=139924549404416 # # JRE version: 7.0_09-b05 # Java VM: Java HotSpot(TM) 64-Bit Server VM (23.5-b02 mixed mode linux-amd64 compressed oops) # Problematic frame: # C [libwebkitgtk-1.0.so.0+0x11670b0] void WTF::freeOwnedGPtr(_GdkEvent*)+0x15e00 # # Failed to write core […]

如何为Java 7中的现有国家/地区代码添加新的Currency到java.util.Currency?

例如,中国货币的ISO 4217代码为CNY 。 由于该货币的自由全球交易受到限制,因此存在第二个“离岸”货币等价物,称为CNH 。 维基百科对这一切有一点总结 。 在Java 7 ,有一种方法可以更新 JVM附带的三个字母ISO 4217代码集。 但是,它不能用于向现有国家/地区代码添加单独的货币代码:它会用CNH取代CNY ,这对我的目的不利。 如何在不覆盖CNY情况下将CNH (不在ISO 4217列表中)添加到Java 7的可用货币集中? 换句话说,如何为一个国家/地区获取多种货币代码? 请注意,这个问题: 如何将新货币代码添加到Java? 被问到并回答了Java 6 。 但是替换java.util.CurrencyData的策略不起作用,因为该文件不再存在。

在JTextPane中包装长单词(Java 7)

在最多6个Java的所有版本中,放置在JScrollPane中的JTextPane的默认行为是:如果可能,在字边界处换行。 如果没有,那么无论如何都要包裹它们。 在JDK 7中,默认行为似乎是:如果可能,在字边界处换行。 如果没有,只需展开JTextPane的宽度(永远不要换长字)。 很容易重现这个,这是一个SSCCE: public class WrappingTest extends JFrame { public static void main ( String[] args ) { new WrappingTest(); } public WrappingTest () { setSize(200,200); getContentPane().setLayout(new BorderLayout()); JTextPane jtp = new JTextPane(); JScrollPane jsp = new JScrollPane(jtp); jsp.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED); getContentPane().add(jsp,BorderLayout.CENTER); setVisible(true); } } 只需在JDK 6和JDK 7中运行它,写一些小字,然后写一个长字,你就会看到差异。 我的问题很简单…… JDK 7中的新默认行为完全混淆了我的程序(他们应该更加小心Oracle更改这种默认值……它们似乎不重要但是当你使用JTextPane显示时通常包含非常长的字母串的数据,它们并不是那么不重要 – 实际上我要提交错误报告,但是我想在/如果它们不解决它的情况下有一个解决方法)。 有什么方法可以回到以前的行为? […]

为什么PropertyDescriptor行为从Java 1.6变为1.7?

更新:Oracle已将此确认为错误。 简介:在JDK 1.7中工作的某些自定义BeanInfo和PropertyDescriptor在JDK 1.7中失败,有些只在垃圾收集运行并且清除了某些SoftReferences后才会失败。 编辑:这也将破坏Spring 3.1中的ExtendedBeanInfo ,如post底部所述。 编辑:如果您调用JavaBeans规范的第7.1或8.3节,请准确说明规范的这些部分需要什么。 这些部分中的语言不是必要的或规范性的。 这些部分中的语言是示例的语言,这些语言最多不像规范那样含糊不清。 此外, BeanInfo API特别允许人们更改默认行为,并且在下面的第二个示例中明确区分了它。 Java Beans规范查找具有void返回类型的默认setter方法,但它允许通过java.beans.PropertyDescriptor自定义getter和setter方法。 使用它的最简单方法是指定getter和setter的名称。 new PropertyDescriptor(“foo”, MyClass.class, “getFoo”, “setFoo”); 这在JDK 1.5和JDK 1.6中有效,以指定setter名称,即使其返回类型不是void,如下面的测试用例中所示: import java.beans.IntrospectionException; import java.beans.PropertyDescriptor; import org.testng.annotations.*; /** * Shows what has worked up until JDK 1.7. */ public class PropertyDescriptorTest { private int i; public int getI() { return i; } […]

Tomcat6和Java 7

在linux中,是否可以在tomcat6上部署使用Java 7编写的Web应用程序? 如果是这样,需要修改哪些配置才能使其工作? 我已经尝试更改tomcat6.conf文件中的JAVA_HOME变量并重新启动,但它仍然使用1.6根据tomcat管理器网页,并且只有1.6或更低版本的应用程序正确部署。 我在不同的位置安装了jdk 1.6和1.7。

如何在JDK7中重命名(不移动)文件?

我对JDK7中所有这些新的File I / O类感到困惑。 让我们说,我有一个Path并希望重命名该文件,它代表。 如何再次指定Path ,如何指定新名称? Path p = /* path to /home/me/file123 */; Path name = p.getName(); /* gives me file123 */ name.moveTo(/* what now? */); /* how to rename file123 to file456? */ 注意:为什么我需要JDK7 ? 处理符号链接 ! 问题是:我必须使用文件,在运行时知道名称和位置。 所以,我需要的是一种安全的方法(没有特殊的副作用)来创建一个新的名称 – 路径的一些旧名称路径。 Path newName(Path oldName, String newNameString){ /* magic */ }

通用类在Java 6中编译,但不在Java 7中编译

我在Java 6中有一个正确编译的接口: public interface IMultiMap extends Map<K, Set> { public int valueSize(); public boolean put(K key, V value); public void clear(Object key); public boolean isEmpty(Object key); } 但在Java 7中,此接口无法编译。 我在boolean put(K, V)上得到一个编译错误,它与V put(K, V)具有相同的擦除。 编译器的完整错误: error: name clash: put(K#1,V#1) in IMultiMap and put(K#2,V#2) in Map have the same erasure, yet neither overrides the other public […]

JDK 1.6和1.7中的新function

我非常了解JDK 1.5。 众所周知,除了新的API(例如AtomicInteger)之外,还有一些主要的语言变化,例如提供对generics的支持,添加枚举,私有自动装箱和自动取消装箱等等。 我想找到一些资源,这些资源最好在JDK 1.6和1.7中对新function进行简短描述(对于我希望阅读完整解释的大新function)。 至于API的变化,只有主要的变化是可以接受的,并且对新的变更进行简短的审查(例如,如果我记得写有从控制台读取字符的新方法)。 就function而言,我想找到完整的列表 (对象分配中的这些更改,现在JVM实际上可以在堆栈上创建对象以进行优化,例如,但我不知道详细信息)。 对于JDK 1.6 核心Java技术特性和Java™SE 6与J2SE 5.0的兼容性 。 对于JDK 1.7 使用Java SE 7exception更改 ,但它是不完整的列表。

JDK 7类文件向后兼容JDK 6

JDK 7的哪些function(不包括invokedynamic,因为它不被java使用)导致新的类文件版本不符合JDK 6.它表明所有function都可以由生成粘合代码的编译器实现。 例如,可以使用编译器生成的重复ifeq语句来实现switch语句中的String。 我希望能够为编译器提供-source 1.7 -target 1.6标志以符合jre 6,同时在jdk 7中使用项目硬币function。

以编程方式创建带文本的SplashScreen的最佳示例

我需要以编程方式创建一个SplashScreen并向其添加文本(并更改它)。 大多数示例使用命令行参数。 有没有解决方案吗?