小编eri*_*son的帖子

是否有Eclipse命令用括号括起当前选择?

是否有Eclipse命令用括号括起当前选择?

创建模板是一个不错的解决方法; 它不能与"Surround With"功能一起使用,因为我想为表达式括号,而不是整行,并且需要${word_selection}而不是${line_selection}.

有没有办法可以将键盘快捷键绑定到此特定模板?Ctrl- space Ctrl- space箭箭箭并不像我所希望的一样光滑.

eclipse keyboard-shortcuts

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

是什么导致keytool错误"无法解密安全内容条目"?

我试图使用此命令将标准PKCS#12(.p12)密钥库转换为Java JKS密钥库:

keytool -importkeystore -srckeystore keystore.p12 -srcstoretype PKCS12 -deststoretype JKS -destkeystore keystore.jks

失败的是:

keytool error: java.io.IOException: failed to decrypt safe contents entry: javax.crypto.BadPaddingException: Given final block not properly padded
Run Code Online (Sandbox Code Playgroud)

你知道如何解决这个问题吗?

java openssl jks keytool pkcs#12

24
推荐指数
4
解决办法
5万
查看次数

如何在调用Thread.sleep()时修复未处理异常的编译错误?

我是Java的新手,也是编程的新手(我知道直接进入Java可能不是最好的主意.)而且无论我如何尝试在程序中添加暂停,我都会遇到错误.我正在做一个简单的计数程序,并希望在每个数字之间添加一秒延迟,这是我到目前为止的代码:

import java.lang.*;

public class Counter
{
    public static void main(String[]args)
    {
        int i;

        for (i = 0; i <= 10; i++)
        {
            Thread.sleep(1000);
            System.out.println(i);
        }
        System.out.println("You can count to ten.");
    }
}
Run Code Online (Sandbox Code Playgroud)

调用Thread.sleep()不会编译.该javac编译器说:"没有报告异常InterruptedException异常;必须捕获或声明抛出"和Eclipse说,"未处理的异常类型InterruptedException的"

java exception-handling checked-exceptions

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

Java密钥库是否可以导入OpenSSL生成的密钥对?

我用openssl生成一个认证密钥.这是我的命令:

openssl genrsa -des3 -out enc_key.pem 1024

我导出到cer文件,然后用java keytool我导入到java密钥库(jks).

密钥库听起来不错.我可以从我的Java应用程序加载密钥库.

问题是当客户端连接到服务器时(在这种情况下是FTP服务器,而不是Web服务器,我使用apache mina),发生异常:

javax.net.ssl.SSLHandshakeException:SSL握手失败.org.apache.mina.filter.ssl.SslFilter.messageReceived(SslFilter.java:433)位于org.apache.mina.core的org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:434) .filterchain.DefaultIoFilterChain.access $ 5(DefaultIoFilterChain.java:429)

...

引起:javax.net.ssl.SSLHandshakeException:com.sun.net.ssl.ssl.ssl.inl上的com.sun.net.ssl.internal.ssl.Handshaker.checkThrown(未知来源)没有共同的密码套件.SLEngineImpl来自com.sun.net.ssl.internal.ssl.SSLEngineImpl.writeAppRecord(未知来源)的.checkTaskThrown(未知来源)位于javax.net的com.sun.net.ssl.internal.ssl.SSLEngineImpl.wrap(未知来源) .ssl.SSLEngine.wrap(未知来源)

...

引起:javax.net.ssl.SSLHandshakeException:在com.sun.net.ssl.inl.ssl.SSLEngineImpl的com.sun.net.ssl.internal.ssl.Alerts.getSSLException(未知来源)中没有共同的密码套件.fatal(未知来源)

我想问一些事情:

  1. 我使用openssl生成的认证密码是什么?我们怎么知道?也许通过命令行openssl xxx?
  2. 我去http://java.sun.com/j2se/1.5.0/docs/guide/security/jsse/JSSERefGuide.html#AppA.我把SSL_RSA_xxx放到启用的密码套件中,但仍然无法工作(我把SSL_RSA放在SSL使用ssl implisit,而genrsa,只是我的意见genrsa生成RSA).这是对的吗?
  3. 有人知道解决方案吗?
  4. 或者,任何人都知道如何从openssl命令行生成标准密钥库,直到可以在java应用程序中使用(当然使用密码).因为我现在可以从openssl和export keystore java生成认证,但我不知道我使用的密码是什么以及我在java应用程序中的使用方式.注意:如果密钥库直接从java生成,我可以运行.现在问题是如果java keytool生成的密钥库来自认证,比如openssl(和其他可能).

任何帮助将不胜感激!谢谢

java openssl keystore

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

Quartz CronTrigger - 获得下一个火力时间

我正在使用Quartz CronTrigger工具来解析cron调度格式字符串,以确定何时应运行特定作业.我实际上并没有使用Quartz安排工作.

CronTrigger中有一个名为getFireTimeAfter(Date)的方法,它给出下一次作业将在给定日期之后触发的时间.当提供的日期现在或将来时,这很有效.但如果日期已经过去,它似乎不起作用.

Date currTime = new Date();
CronTrigger tr = new CronTrigger();
tr.setCronExpression("0 0 23 3,18 * ? *");
Date nextFireAt = tr.getFireTimeAfter(currTime);
System.out.println("Reference time: " + currTime);
System.out.println("Next fire after reference time: " + nextFireAt);
Run Code Online (Sandbox Code Playgroud)

这是每月3日和18日23:00开火的cron时间表.例如,如果我今天(8月11日)这样做,我看到:

Reference time: Thu Aug 11 10:04:25 MDT 2011
Next fire after reference time: Thu Aug 18 23:00:00 MDT 2011
Run Code Online (Sandbox Code Playgroud)

但是,如果我将参考日期设置为过去,它会给我相同的下一个开火时间.

Reference time: Wed Dec 31 17:00:00 MST 1969
Next fire after reference time: Thu Aug 18 23:00:00 MDT 2011
Run Code Online (Sandbox Code Playgroud)

我期待输出为:

Reference time: …
Run Code Online (Sandbox Code Playgroud)

java cron quartz-scheduler

21
推荐指数
2
解决办法
4万
查看次数

Class Generics的类型不匹配

我有以下不能编译的代码,虽然有一种方法可以使它编译,我想了解它为什么不编译.有人可以告诉我具体为什么我收到错误信息,我会在最后发布吗?

public class Test {
    public static void main(String args[]) {
        Test t = new Test();
        t.testT(null);
    }

    public <T extends Test> void testT(Class<T> type) {
        Class<T> testType = type == null ? Test.class : type; //Error here
        System.out.println(testType);
    }
}
Run Code Online (Sandbox Code Playgroud)

Type mismatch: cannot convert from Class<capture#1-of ? extends Test> to Class<T>

通过投射Test.classClass<T>这个编译与Unchecked cast警告并完美运行.

java generics

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

当枚举类型是一个类时如何使用Java反射?

我正在使用枚举,其中常量是一个类.我需要在常量上调用一个方法但是不能引入编译时依赖项,并且枚举在运行时并不总是可用(可选安装的一部分).因此,我想用反射.

这很容易,但我之前没有使用枚举的反射.

枚举看起来像这样:

public enum PropertyEnum {

  SYSTEM_PROPERTY_ONE("property.one.name", "property.one.value"),

  SYSTEM_PROPERTY_TWO("property.two.name", "property.two.value");

  private String name;  

  private String defaultValue;

  PropertyEnum(String name) {
    this.name = name;
  }

  PropertyEnum(String name, String value) {
    this.name = name;
    this.defaultValue = value;
  } 

  public String getName() {
    return name;
  }

  public String getValue() {
    return System.getProperty(name);
  }

  public String getDefaultValue() {
    return defaultValue;
  }  

}
Run Code Online (Sandbox Code Playgroud)

使用反射调用常量方法的示例是什么?

java reflection enums

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

如何在Java Socket上超时读取?

我正在尝试从套接字读取项目,我注意到如果套接字流上没有任何内容,它将保留在读取并备份我的应用程序.我想知道是否有一种方法可以设置读取超时或在套接字中没有任何时间后终止连接.

java sockets timeout inputstream

19
推荐指数
2
解决办法
4万
查看次数

我应该如何为具有多个边界的Java泛型投射?

是否可以将Java中的对象转换为组合泛型类型?

我有一个方法,如:

public static <T extends Foo & Bar> void doSomething(T object) {
    //do stuff
}
Run Code Online (Sandbox Code Playgroud)

如果我有一个实现两个接口的类(Foo和Bar),则调用此方法没有问题.

问题是,当我需要调用此方法时,我需要传递给它的对象,java.lang.Object并且我需要将其转换为使编译器满意.但我无法弄清楚如何进行演员表演.

编辑:

问题在于这样的功能:

public void problemFunction (Object o) {
  if ( o instanceof Foo && o instanceof Bar) {
      doSomething((Problematic cast) o);
  }
}
Run Code Online (Sandbox Code Playgroud)

}

java generics polymorphism casting

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

如何将元素添加到通配符通用集合中?

为什么我用这个Java代码会出现编译器错误?

1  public List<? extends Foo> getFoos()
2  {
3    List<? extends Foo> foos = new ArrayList<? extends Foo>();
4    foos.add(new SubFoo());
5    return foos;
6  }
Run Code Online (Sandbox Code Playgroud)

其中'SubFoo'是实现Foo的具体类,而Foo是一个接口.

我用这段代码得到的错误:

  • 在第3行:"无法实例化ArrayList <?extends Foo>"
  • 在第4行:"方法添加(捕获#1-of?extends Foo)在类型List <capture#1-of?extends Foo>中不适用于参数(SubFoo)"

更新:感谢Jeff C,我可以更改第3行来说"new ArrayList <Foo>();".但我仍然遇到第4行的问题.

java generics

16
推荐指数
3
解决办法
2万
查看次数