小编Law*_*Dol的帖子

是否有一个免费的包,用于在Java中读取,操作和编写ASN.1?

是否有一个免费的包,用于在Java中读取,操作和编写ASN.1?

肯定是:

  1. 自由
  2. 轻量级
  3. 自包含(没有外部依赖,例如Apache commons)
  4. Java 5(不是Java 6)和Java 4是首选.

java packages asn.1

9
推荐指数
1
解决办法
1272
查看次数

确保线程安全的最佳编程方法/方法

当我学习Java从一些20年的基础,帕斯卡,COBOL和C的过程式编程的背景来了,我当时认为它是最难的事情是包裹我的头周围的OOP术语和概念的时间.现在我带大约8年的稳固的Java,我得出的结论是,关于Java编程和类似的语言,如C#单最难的事情是多线程/并发方面.

编写可靠且可扩展的多线程应用程序非常困难!随着处理器变得"更宽"而不是更快的趋势,它正在迅速变得非常关键.

当然,最困难的领域是控制线程之间的交互以及由此产生的错误:死锁,竞争条件,陈旧数据和延迟.

所以我的问题是:采用什么方法或方法来生成安全的并发代码,同时减少死锁,延迟和其他问题的可能性?我提出了一种有点非传统的方法,但在几个大型应用程序中工作得非常好,我将在这个问题的详细答案中分享.

concurrency multithreading multicore

8
推荐指数
4
解决办法
1639
查看次数

在转换为泛型类型时,Java中的警告

我有一些通用代码,我无法弄清楚如何合法地阻止警告; 我目前正在使用@SuppressWarnings("unchecked"),因为似乎在没有警告的情况下无法完成转换泛型类型.

我怎样才能摆脱注释?

我有的是:

public MyObject(SharedContext<Object> ctx) {
    super(ctx); // set protected field 'context'
    ...
    context.set("Input Fields"  ,Collections.synchronizedMap(new TreeMap<String,Pair<String,Boolean>>(String.CASE_INSENSITIVE_ORDER)));
    context.set("Output Fields" ,Collections.synchronizedMap(new TreeMap<String,String>              (String.CASE_INSENSITIVE_ORDER)));
    context.set("Event Registry",new EventRegistry(log)                                                                              );
    }

@SuppressWarnings("unchecked")
protected void startup() {
    inputFields     =(Map<String,Pair<String,Boolean>>)context.get("Input Fields"  ,null);
    outputFields    =(Map<String,String>              )context.get("Output Fields" ,null);
    eventRegistry   =(EventRegistry                   )context.get("Event Registry",null);
    ...
    }
Run Code Online (Sandbox Code Playgroud)

受保护的变量上下文是类型SharedContext<Object>.

如果没有注释,编译器会发出警告:

...\MyClass.java:94: warning: [unchecked] unchecked cast
found   : java.lang.Object
required: java.util.Map<java.lang.String,com.mycompany.Pair<java.lang.String,java.lang.Boolean>>
    inputFields     =(Map<String,Pair<String,Boolean>>)context.get("Input Fields"  ,null);
                                                                  ^
...\MyClass.java:95: warning: [unchecked] unchecked cast
found   : java.lang.Object
required: java.util.Map<java.lang.String,java.lang.String>
    outputFields    =(Map<String,String> …
Run Code Online (Sandbox Code Playgroud)

java generics warnings

8
推荐指数
1
解决办法
4071
查看次数

JFrame repaint()问题 - Java

我希望能够在JFrame上使用Java的paint()进行绘制.当我点击的JFrame(任何地方现在)我想的JFrame与点击的坐标重新绘制-类似这样的Java小程序http://www.realapplets.com/tutorial/MouseClickExample.html

正在工作:

  • 最初绘制所有内容并正确显示JFrame

不工作:

  • 即使声明了repaint(),JFrame也不会重新绘制和更新

这是我的代码 - 请尽可能严格 - 我希望改进我的Java编程技术(如果你有时间)指出我可以改进的每个方面.

任何帮助将非常感谢.

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

class AreaForText extends JPanel implements MouseListener {

int xpos; 
int ypos;

JFrame myJFrame = new JFrame();

public void setJFrame() {

    myJFrame.setSize(300, 150);
    myJFrame.setTitle("Bigger Text!");
    myJFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    myJFrame.setVisible(true);
    myJFrame.getContentPane().add(new AreaForText());
    myJFrame.addMouseListener(new AreaForText());

}

public void mouseClicked(MouseEvent me) {
    //Save the coordinates of the click lke this. 
    xpos = MouseInfo.getPointerInfo().getLocation().x; 
    ypos = MouseInfo.getPointerInfo().getLocation().y;
    System.out.print("Click" + "  x: " + xpos + "  y: " + …
Run Code Online (Sandbox Code Playgroud)

java validation awt jframe repaint

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

在Java中创建SSL套接字时,为什么会出现"无法存储非PrivateKeys"错误?

我正在使用旧的IBM iSeries(IBM-i,i5OS,AS/400等),在O/S版本V5R3M0上使用Java 5 JVM(Classic,而不是ITJ J9).

简而言之,这是一个场景:

  1. 我使用Portecle 1.7创建了一个JKS类型的密钥存储区(注意:我确实尝试将我的密钥存储区转换为JCEKS但是作为不支持的格式被拒绝,因此看起来JKS是iSeries机器的唯一选项(至少我正在使用的版本).
  2. 然后,我创建了一个密钥对和CSR,并将CSR发送给Thawte进行签名.
  3. 我使用PKCS#7格式从Thawte成功导入了签名证书,以导入整个证书链,其中包括我的证书,Thawte中介和Thawte服务器根.

这一切都按预期工作.

但是,当我运行JVM时,正确配置指向商店并提供密码(我过去使用在Portecle中创建的自签名证书进行测试),并尝试在443上启动我的Web服务器,我收到以下安全异常:

java.security.KeyStoreException: Cannot store non-PrivateKeys
Run Code Online (Sandbox Code Playgroud)

谁能告诉我哪里出错了,或者我接下来要检查什么?

java ssl ibm-midrange

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

我应该使用HTML <button>还是<input>?

我想在HTML表单上创建一个表单提交按钮,该表单的文本与将提交给主机的关键字的文本不同.所以我用过

<button type="submit" name="SubmitAction" value="Done" accesskey="D"><u>D</u>one for Now</button>
Run Code Online (Sandbox Code Playgroud)

W3Schools警告说:

注意:如果您<button>在HTML表单中使用该元素,则不同的浏览器可能会提交不同的值.用于<input>在HTML表单中创建按钮.

有没有办法使用按钮上<input>显示的文本与提交给主机的值不同来创建按钮?

不同浏览器发送的变体有哪些<button>

注意:我不需要支持任何旧版本的IE 9,并且实际上将使用当前版本的Chrome和FireFox.

html html5 form-submit

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

是否存在免费的通用ASN.1解码/转储/检查程序?

是否存在免费的通用ASN.1解码/转储/检查程序?我有一个可疑的ASN.1块可能解密失败了,我想检查它看它看起来有效,如果有的话它包含什么元素.

javascript cryptography asn.1 utility

6
推荐指数
1
解决办法
4526
查看次数

Java字体渲染:对于子像素AA,必须关闭一般AA吗?

我一直在尝试增强我用Java编写的GUI系统以使用子像素抗锯齿并且已经成功,除了一个剩余的异常.这是我昨天提出的另一个问题.

剩下的问题是将设置渲染提示KEY_ANTIALIASING设置为VALUE_ANTIALIAS_ON会导致KEY_TEXT_ANTIALIASING在设置为LCD(子像素)AA值时被忽略.任何人都可以对此有所了解吗?目前我在渲染文本之前被迫使用VALUE_ANTIALIAS_OFF,并在渲染文本后将其重新打开(以便其他绘画,如圆圈等,是AA'd).

下面的独立测试程序证明了这个问题.正如您所看到的,如果您运行它,当字体不是时,圆圈会涂上AA,反之亦然.将AA预配置为所有绘画工作会很好.


自包含测试程序

import java.awt.*;
import java.awt.event.*;

public class AwtTestFrame1c extends Panel {

AwtTestFrame1c() {
    setBackground(SystemColor.control);
    }

public void paint(Graphics gc) {
    Graphics2D                          g2d = (Graphics2D)gc;
    int                                 py=0;

    py=paintText(g2d,py,RenderingHints.VALUE_TEXT_ANTIALIAS_LCD_HRGB,true );
    py=paintText(g2d,py,RenderingHints.VALUE_TEXT_ANTIALIAS_LCD_HRGB,false);
    }

private int paintText(Graphics2D dgc, int py, Object val, boolean aa) {
    char[]                              txt=("The quick brown fox jumped over the lazy dog ("+val+", General AA: "+aa+")").toCharArray();

    if(aa        ) { dgc.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON ); }
    else           { dgc.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_OFF); }
    if(val !=null) { dgc.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,val);                           }
    dgc.setFont(font);

    dgc.drawOval(5,py+5,15,15);
    dgc.drawChars(txt,0,txt.length,30,py+line-5);

    return (py+line); …
Run Code Online (Sandbox Code Playgroud)

java fonts rendering antialiasing

6
推荐指数
1
解决办法
1569
查看次数

如何在表格单元格之间填充,而不是在整个表格周围填充?

我希望每个单元格之间有一个填充表,但不是在外边缘单元格周围,也就是说,不在表格本身周围.

使用:

border-collapse : separate;
border-spacing  : 0.5em;
Run Code Online (Sandbox Code Playgroud)

给我填充到处,同时使用:

border-collapse : collapse;
Run Code Online (Sandbox Code Playgroud)

在任何地方都没有填充.

尝试另一种方法,我可以得到填充单独之间的细胞水平使用td + td选择器.但是我不能使用tr + tr选择器,因为它似乎tr忽略了边距,填充和边界规则.

当然,普通td选择器上的填充适用于所有单元格,甚至是外部单元格的外边缘.

这只适用于当代浏览器 - 对我来说没有IE 6或7非常感谢你.而且我不会在IE 8上失去任何睡眠,尽管如果有效的话会很好.

html padding spacing css-tables

6
推荐指数
1
解决办法
2348
查看次数

如何忽略perl grep中的任何空值?

我使用以下内容来计算文件中模式的出现次数:

my @lines = grep /$text/, <$fp>;
print ($#lines + 1);
Run Code Online (Sandbox Code Playgroud)

但有时它打印的比实际值多一个.我检查过它是因为最后一个元素@lines是null,这也是计算的.

有时候grep结果的最后一个元素是空的吗?此外,如何解决此问题?

arrays perl grep

6
推荐指数
1
解决办法
2412
查看次数