嗨我正在使用maven 3.0.3运行maven测试,使用hibernate 4.0.0最终版本和jdk7 update 2上的spring 3.1.
我收到以下错误.
Caused by: java.lang.VerifyError: Expecting a stackmap frame at branch target 63 in method ${myDomainClass}.equals(Ljava/lang/Object;)Z at offset 24
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2442)
at java.lang.Class.getDeclaredMethods(Class.java:1808)
at org.hibernate.property.BasicPropertyAccessor.getterMethod(BasicPropertyAccessor.java:352)
at org.hibernate.property.BasicPropertyAccessor.getGetterOrNull(BasicPropertyAccessor.java:331)
at org.hibernate.property.BasicPropertyAccessor.createGetter(BasicPropertyAccessor.java:314)
at org.hibernate.property.BasicPropertyAccessor.getGetter(BasicPropertyAccessor.java:310)
at org.hibernate.internal.util.ReflectHelper.getter(ReflectHelper.java:250)
at org.hibernate.internal.util.ReflectHelper.reflectedPropertyClass(ReflectHelper.java:229)
at org.hibernate.mapping.SimpleValue.setTypeUsingReflection(SimpleValue.java:314)
at org.hibernate.cfg.HbmBinder.bindSimpleId(HbmBinder.java:447)
at org.hibernate.cfg.HbmBinder.bindRootPersistentClassCommonValues(HbmBinder.java:380)
at org.hibernate.cfg.HbmBinder.bindRootClass(HbmBinder.java:320)
at org.hibernate.cfg.HbmBinder.bindRoot(HbmBinder.java:171)
at org.hibernate.cfg.Configuration$MetadataSourceQueue.processHbmXml(Configuration.java:3377)
at org.hibernate.cfg.Configuration$MetadataSourceQueue.processHbmXmlQueue(Configuration.java:3369)
at org.hibernate.cfg.Configuration$MetadataSourceQueue.processMetadata(Configuration.java:3357)
at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1334)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1724)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1775)
at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:184)
at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:314)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1514)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1452)
Run Code Online (Sandbox Code Playgroud)
我的Equals方法使用了commons-lang 2.6中的EqualsBuilder.我设置了以下maven opts
SET MAVEN_OPTS=%MAVEN_OPTS% -XX:-UseSplitVerifier
Run Code Online (Sandbox Code Playgroud)
在阅读了这个 …
我在本网站和其他地方读过几个问题,表明安装Oracle JDK7时,没有必要在正确安装JDK时指定jfxrt.jar的类路径.不幸的是,我的安装似乎不正确,但我无法弄清楚出了什么问题.
我为我的Red Hat Enterprise Linux 6.2服务器使用了正确的RPM,当我将jfxrt.jar添加到External Jars时,我能够在Eclipse中构建JavaFX应用程序.但是当尝试从命令行编译和运行时,除非我为javac和java指定-cp选项,否则它找不到JavaFX类.服务器最初使用的是openjdk-1.6,但我使用了替代方法来配置javac和java以指向新安装的JDK.除了这个问题,它看起来工作正常.
我发现在尝试运行JavaFX Exporter时,同样的问题困扰着我.我试图导出一个在Eclipse中运行良好的项目.但是在尝试运行时找不到JavaFX类.我还没有弄清楚如何告诉导出器jfxrt.jar文件所在的位置.
作为参考,jfxrt.jar位于我系统上的/usr/java/jdk1.7.0_21/jre/lib/jfxtr.jar中.
我有一个命令,我需要在这些行中使用java运行:
C:\path\that has\spaces\plink -arg1 foo -arg2 bar "path/on/remote/machine/iperf -arg3 hello -arg4 world"
Run Code Online (Sandbox Code Playgroud)
当路径没有空格时,此命令工作正常,但是当我有空格时,我似乎无法使其工作.我尝试过以下操作,运行Java 1.7
String[] a = "C:\path\that has\spaces\plink", "-arg1 foo", "-arg2 bar", "path/on/remote/machine/iperf -arg3 hello -arg4 world"
Runtime.getRuntime().exec(a);
Run Code Online (Sandbox Code Playgroud)
以及
String[] a = "C:\path\that has\spaces\plink", "-arg1 foo", "-arg2 bar", "path/on/remote/machine/iperf", "-arg3 hello", "-arg4 world"
Runtime.getRuntime().exec(a);
Run Code Online (Sandbox Code Playgroud)
但似乎都没有做任何事情.我有什么问题吗?
这在最近的一个项目中让我烦恼,我的Google phoo让我无法找到合适的答案.
是否有一个集合,可以访问,ListIterator但也只允许集合内的唯一值?
为此推理,我有一个项目集合,在这个集合中应该只有每个元素之一.我也希望能够在两个方向上遍历这个集合.我希望它可以被排序或允许我使用它进行排序Collections.Sort();
我找不到任何合适的东西,不得不使用以下代码编写自己的类:
public class UniqueArrayList<E> extends ArrayList<E> {
@Override
public boolean add(E element){
if (this.contains(element))
return false;
else
return super.add(element);
}
@Override
public void add(int index, E element){
if (this.contains(element))
return;
else
super.add(index, element);
}
@Override
public boolean addAll(Collection<? extends E> c){
if (new HashSet<E>(c).size() < c.size())
return false;
for(E element : c){
if (this.contains(c))
return false;
}
return super.addAll(c);
}
@Override
public boolean addAll(int index, Collection<? extends E> c) {
if (new HashSet<E>(c).size() …Run Code Online (Sandbox Code Playgroud) 到目前为止我所能找到的是这个(开放的)Sun bug/RFE条目,获得426 506票:
http://bugs.sun.com/view_bug.do?bug_id=6530906
它在RFE列表中位居第三.
很多人都表示它将被包含在Java 7中......但是有没有人有关于是否包含MiGLayout的任何明确信息?
回答
嗯,似乎Chad有一个观点 - 它不在任何地方的官方列表上,时间肯定会消失,所以除非发生重大事件,否则可以说MiGLayout显然不会包含在Java 7中,尽管有426票来自社区.太糟糕了.
我正在阅读将在Java 7中出现的闭包.
我有点困惑,因为一方面有很多很好的文章描述了新的java闭包.但另一方面,有3种不同的规格,有些文章只是过时了,因为描述的不是最新的提案.
因此,如果有人从一开始就跟踪java闭包的进度,那么请在很短的时间内描述所有3个提案及其当前状态.
关于闭包的另一件事是,是否只存在一个开发线或正在开发不同的版本(例如,来自Sun,来自Google,来自Apache等的闭包)?
给出了泛型教程中的这个例子.
List<String> list = new ArrayList<>();
list.add("A");
// The following statement should fail since addAll expects
// Collection<? extends String>
list.addAll(new ArrayList<>());
Run Code Online (Sandbox Code Playgroud)
为什么最后一行不能编译,它似乎应该编译.第一行使用非常相似的构造并编译没有问题.
请详细解释.
我在Windows 7 64位中使用JDK7和Eclipse Indiago.我将环境变量JAVA_HOME设置为F:\ JDK7并在路径中添加%JAVA_HOME%\ bin.这是我的示例代码:
com.sun.tools.javac.Main m1 = new com.sun.tools.javac.Main();
m1.compile(source);
Run Code Online (Sandbox Code Playgroud)
我得到的错误:
键入com.sun.tools无法解析为类型
为什么没有com.sun.tools?有什么问题 ?

Java 7引入了Objects包含" null-safe或null-tolerant"方法的类,包括compare(T, T, Comparator<T>).但我什么时候会用
Objects.compare(left, right, comparator);
Run Code Online (Sandbox Code Playgroud)
简单地打电话
comparator.compare(left, right);
Run Code Online (Sandbox Code Playgroud)
?
Objects.compare只有null-safe如果comparator也是如此,为什么我会包装比较调用?首先检查对象标识的优化似乎应该在比较器本身中完成.我能看到的行为中唯一真正的区别在于comparator.compare(left, right)抛出一个NullPointerException如果所有的comparator,left而且right是null,而Objects.compare不是; 这似乎并不是一个重要的考虑因素,可以保证新的标准库方法.
我错过了一些明显的东西吗?