标签: java-7

JDK7现在可以安全使用吗?

我最近了解到JDK7中存在用于热点编译器优化的错误.看到 这个帖子.

我不太了解这些错误的细节,但它们似乎与循环优化有关.由于我要在-server模式下运行一些大型程序(当然包含很多循环),我想知道使用JDK7是否安全?谢谢.

java java-7

7
推荐指数
1
解决办法
1218
查看次数

不支持的类版本错误

在尝试使用Eclipse IDE(使用jdk1.6)从客户端调用使用NETbeans(使用jdk1.7)创建的EJB时,我收到以下错误 -

Exception in thread "main" java.lang.UnsupportedClassVersionError: stateless/TestEjbRemote : Unsupported major.minor version 51.0
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
    at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
    at com.sun.ejb.EJBUtils.getBusinessIntfClassLoader(EJBUtils.java:688)
    at com.sun.ejb.EJBUtils.loadGeneratedRemoteBusinessClasses(EJBUtils.java:463)
    at com.sun.ejb.EJBUtils.lookupRemote30BusinessObject(EJBUtils.java:414)
    at com.sun.ejb.containers.RemoteBusinessObjectFactory.getObjectInstance(RemoteBusinessObjectFactory.java:75)
    at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:304)
    at com.sun.enterprise.naming.impl.SerialContext.getObjectInstance(SerialContext.java:556)
    at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:514)
    at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:455)
    at javax.naming.InitialContext.lookup(InitialContext.java:392)
    at Main.main(Main.java:19)
Run Code Online (Sandbox Code Playgroud)

任何解决这个问题的方法?

java ejb jdk1.6 java-7

7
推荐指数
1
解决办法
4万
查看次数

Java 7u4 webstart安全性异常:类与信任级别不匹配

我们开始注意到,使用Java 7(特别是更新4),我们的所有用户都开始使用我们的Webstart应用程序看到这一点:

[14:42:58,422] AWT-EventQueue-0(DEBUG) java.lang.SecurityException: class "CLASSNAME" does not match trust level of other classes in the same package
[14:42:58,422] AWT-EventQueue-0(DEBUG) at com.sun.deploy.security.CPCallbackHandler$ChildElement.checkResource(Unknown Source)
[14:42:58,422] AWT-EventQueue-0(DEBUG) at com.sun.deploy.security.DeployURLClassPath$JarLoader.checkResource(Unknown Source)
[14:42:58,422] AWT-EventQueue-0(DEBUG) at com.sun.deploy.security.DeployURLClassPath$JarLoader.getResource(Unknown Source)
[14:42:58,422] AWT-EventQueue-0(DEBUG) at com.sun.deploy.security.DeployURLClassPath.getResource(Unknown Source)
[14:42:58,422] AWT-EventQueue-0(DEBUG) at java.net.URLClassLoader$1.run(Unknown Source)
[14:42:58,422] AWT-EventQueue-0(DEBUG) at java.net.URLClassLoader$1.run(Unknown Source)
[14:42:58,422] AWT-EventQueue-0(DEBUG) at java.security.AccessController.doPrivileged(Native Method)
[14:42:58,422] AWT-EventQueue-0(DEBUG) at java.net.URLClassLoader.findClass(Unknown Source)
[14:42:58,422] AWT-EventQueue-0(DEBUG) at com.sun.jnlp.JNLPClassLoader.findClass(Unknown Source)
[14:42:58,422] AWT-EventQueue-0(DEBUG) at java.lang.ClassLoader.loadClass(Unknown Source)
[14:42:58,422] AWT-EventQueue-0(DEBUG) at java.lang.ClassLoader.loadClass(Unknown Source)...More
Run Code Online (Sandbox Code Playgroud)

其中CLASSNAME =几乎每个类都在应用程序执行中的几个jar中的随机点,打破了几个行为.如果我们的用户使用Java 6,他们没有问题!只是7(更新4).我们签署所有的罐子,主要的应用罐子和它的库罐子.即启动我们的webstart应用程序的用户看到蓝色盾牌而不是黄色或红色.

这显然是一个问题,因为用户现在更频繁地升级到Java 7.我试图通过使用先前的安装(工作)或安装新的应用程序来强制我们的应用程序在用户计算机上使用Java 6 …

java security securityexception java-web-start java-7

7
推荐指数
2
解决办法
9688
查看次数

Java 7 + Rhino 1.7R3支持CommonJS模块?

我需要帮助让CommonJS使用Java 7和Rhino 1.7R3.

Rhino 1.7R3支持CommonJS模块:

Java 7与Rhino 1.7R3捆绑在一起.不幸的是,Java 7的Rhino是一个修改版本,它不包括这个org.mozilla.javascript.commonjs包:

我想通过javax.scriptAPI 使用Rhino 1.7R3对CommonJS的支持,如下所示:

ScriptEngineManager mgr = new ScriptEngineManager();
ScriptEngine engine = mgr.getEngineByName("JavaScript");
engine.put("markdown", markdown);
engine.eval("var html = require('./Markdown.Sanitizer').getSanitizingConverter().makeHtml(markdown);");
return (String) engine.get("html");
Run Code Online (Sandbox Code Playgroud)

(我通过验证ScriptEngineManager确实使用了Rhino 1.7R3引擎.)我想也许我可以将以下依赖项添加到类路径中

<dependency>
    <groupId>org.mozilla</groupId>
    <artifactId>rhino</artifactId>
    <version>1.7R3</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

而CommonJS-特别是,require()- 将开始工作.但事实并非如此.当我尝试使用时,require()我得到了

Caused by: sun.org.mozilla.javascript.internal.EcmaError: ReferenceError: "require" is not defined. (<Unknown source>#2)
    at sun.org.mozilla.javascript.internal.ScriptRuntime.constructError(ScriptRuntime.java:3773)
    at sun.org.mozilla.javascript.internal.ScriptRuntime.constructError(ScriptRuntime.java:3751)
    at sun.org.mozilla.javascript.internal.ScriptRuntime.notFoundError(ScriptRuntime.java:3836)
Run Code Online (Sandbox Code Playgroud)

如何让Java 7与完整版Rhino 1.7R3一起使用,以便获得CommonJS支持?

编辑:我发现了以下问题,它涉及完全相同的主题:

完整性检查:Rhino没有require函数,对吧?

受访者表示也许可以用CommonJS Rhino 1.7R3替换有限的Rhino 1.7R3,但没有说明如何做到这一点.这就是我在这里问的问题.

javascript rhino require commonjs java-7

7
推荐指数
1
解决办法
6188
查看次数

在linux中安装jdk 1.7时出错

当我使用以下内容在Oracle Linux中安装jdk 1.7时

rpm -ivh jdk-7u9-linux-i586.rpm

但是我收到以下错误,如何解决这些错误并安装jdk 1.7?

任何帮助都非常值得赞赏.

谢谢

rpm -ivh /tmp/mnt/jdk-7u9-linux-i586.rpm
Preparing...                ########################################### [100%]
   1:jdk                    ########################################### [100%]
Unpacking JAR files...
        rt.jar...
Error: Could not open input file: /usr/java/jdk1.7.0_09/jre/lib/rt.pack
        jsse.jar...
Error: Could not open input file: /usr/java/jdk1.7.0_09/jre/lib/jsse.pack
        charsets.jar...
Error: Could not open input file: /usr/java/jdk1.7.0_09/jre/lib/charsets.pack
        tools.jar...
Error: Could not open input file: /usr/java/jdk1.7.0_09/lib/tools.pack
        localedata.jar...
Error: Could not open input file: /usr/java/jdk1.7.0_09/jre/lib/ext/localedata.pack
        plugin.jar...
Error: Could not open input file: /usr/java/jdk1.7.0_09/jre/lib/plugin.pack
        javaws.jar...
Error: Could not open input file: /usr/java/jdk1.7.0_09/jre/lib/javaws.pack
        deploy.jar...
Error: …
Run Code Online (Sandbox Code Playgroud)

java linux oracle installation java-7

7
推荐指数
1
解决办法
2万
查看次数

在jdk7监视服务API中,什么时候会抛出OVERFLOW事件?

在对溢出文件规定:

OVERFLOW - 表示事件可能已丢失或丢弃.

它没有说在什么情况下我应该期望事件丢失或丢弃?起初我以为这是将很多文件写入文件夹的结果.我创建了几千个零大小的文件,并将它们移动到受监控的目录.没有溢出.

我错过了什么?

java io java-7 nio2

7
推荐指数
3
解决办法
3820
查看次数

无法在IntelliJ中定义多次捕获

我在Intellij 12.0.4中使用JDK 7.当我尝试创建一个多捕获块时,会出现"此语言级别不支持多捕获"错误.我发现了这个问题,但答案对我不起作用.这就是答案:

单击文件菜单,打开项目结构,然后在"设置"下应该有"项目".在该选项卡中,将有一个SDK设置选项,指定您要使用的语言版本.有关详细信息,请参阅JetBrains帮助页面("项目语言级别").

java intellij-idea java-7 multi-catch

7
推荐指数
2
解决办法
5545
查看次数

加密解密使用jasypt

如何使用加密密码解密jasypt.

package com.uk.mysqlmaven.jsf.test;

import org.jasypt.util.password.StrongPasswordEncryptor;
import org.jasypt.util.text.StrongTextEncryptor;


public class PasswordEncryptionDecryptionUsingJASYPT {
    public static void main(String[] args) {
        try {
            String password = "password";
            StrongPasswordEncryptor encryptor = new StrongPasswordEncryptor();
            String encryptedPassword = encryptor.encryptPassword(password);
            if (encryptor.checkPassword(password, encryptedPassword)) {
                //correct
                System.out.println("Encrypted: "+ encryptedPassword);
            } else {
                //bad again
                System.out.println("Error: ");
            }
            StrongTextEncryptor textEncryptor = new StrongTextEncryptor();
            textEncryptor.setPassword(encryptedPassword);
            String decryptedPassword = textEncryptor.decrypt(encryptedPassword);
            System.out.println("Decrypted: "+ decryptedPassword);

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

使用jasypt解密密码时,控制台中会显示错误.

Encrypted: JIOYXNa1+3+QefY2S7sas7LmhyOuDQcG8TTsQoTkqj0OtobCvwAFHXxoTr7z6HuP
org.jasypt.exceptions.EncryptionOperationNotPossibleException: Encryption raised an exception. …
Run Code Online (Sandbox Code Playgroud)

java encryption jasypt java-7 windows-8

7
推荐指数
1
解决办法
1万
查看次数

JDK 7中的泛型和三元运算符的编译错误

编写一些Java代码时遇到编译失败,我将其提炼为以下测试用例:

import java.util.Collections;
import java.util.List;

public class TernaryFailure {
    public static List<String> thisWorks() {
        return Collections.emptyList();
    }

    public static List<String> thisFailsToCompile() {
        return true ? Collections.emptyList() : Collections.emptyList();
    }
}
Run Code Online (Sandbox Code Playgroud)

上面的代码无法javac使用JDK 1.7.0_45 进行编译:

$ javac TernaryFailure.java
TernaryFailure.java:10: error: incompatible types
        return true ? Collections.emptyList() : Collections.emptyList();
                    ^
  required: List<String>
  found:    List<Object>
1 error
Run Code Online (Sandbox Code Playgroud)

但是,它在JDK 1.8.0_05中编译时没有任何错误.

这是Java 7实现中的错误吗?或者是否对Java 8中的Java语言规范进行了增强以开始允许这样做 - 如果是这样,那么改变是什么?

java generics ternary-operator java-7 java-8

7
推荐指数
1
解决办法
6569
查看次数

Camel:无法动态添加路由

我正在使用Apache-Camel 2.15.2.

我正在尝试CamelContext动态添加路由,但我遇到了一个令我感到困惑的问题.

据我所知,我确实将路由添加到正确的路径CamelContext,看起来它们configure()被调用而没有抛出异常.但是当我尝试执行主路由时,我得到一个运行时异常告诉我,我动态添加的路由不存在.

这是我的代码的简化版本:

public class MainRouteBuilder extends RouteBuilder
{
    public static CamelContext camelContext;

    public static boolean returnLabel = true;

    public static RouteBuilder nestedRouteBuilder;

    @Override
    public void configure() throws Exception
    {
        System.out.println("Building main route!");
        System.out.println("Context: " + getContext());

        camelContext = getContext();

        from("direct:mainRoute")
        //3. I do not actually want to instantiate RouteContainer like this each time I call this route.
        //I would simply want to reuse a reference to an instance I created outside …
Run Code Online (Sandbox Code Playgroud)

java apache-camel java-7 tomcat7

7
推荐指数
1
解决办法
2350
查看次数