如何正确使用CipherOutputStream加密和解密用log4j创建的日志(RollingFileAppender)

我在加密/解密log4j的RollingFileAppender生成的日志文件时遇到问题。 对于加密我试图扩展RollingFileAppender,只需将其称为EncryptedRollingFileAppender。 我重写了这个方法 setFile(String fileName, boolean append, boolean bufferedIO, int bufferSize) 基本上我使用CipherOutputStream和Base64OutputStream来加密和编码写入输出流的所有内容。 这是代码的一部分: … setImmediateFlush(true); FileOutputStream ostream = null; CipherOutputStream cstream = null; Base64OutputStream b64stream = null; try { byte[] keyBytes = “1234123412341234”.getBytes(); //example final byte[] ivBytes = new byte[] { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, […]

Maven使用.class和.java文件创建jar文件

我正在寻找一种方法来创建包含GWT模块的.class和.java文件的jar文件。 任何人都知道如何实现这一目标? Superthanks! //尼克拉斯

Java Generics数组语法

以下声明指定了哪种数据结构? List[] myArray; 我认为它应该声明一个数组,其中每个元素是一个List (例如, LinkedList或ArrayList ),并要求每个List包含ArrayList对象。 我的推理: List someList; // A List of String objects List someList; // A List of ArrayList objects List[] someListArray; // An array of List of ArrayList objects 在运行一些测试之后,我确定它接受一个数组,其中每个元素都是LinkedList对象,并且没有指定LinkedList对象包含的内容。 因此List指定List必须包含的内容,但List[]指定List必须如何实现。 我错过了什么吗? 这是我的测试。 import java.util.ArrayList; import java.util.List; import java.util.LinkedList; public class Generics1 { public static void main(String[] args) { List[] […]

使用什么冲洗模式’自动’或’提交’

正如我的标题所描述的,我在我的应用程序中使用了hibernateAuto刷新模式机制。 因此,当我更改hibernate持久对象中的任何数据时,它会自动反映在数据库中。 我不想要这个。 所以我找到了一个使用FlushMode Commit的解决方案。 所以这是我的实际问题: 使用Commit刷新模式而不是Auto更好吗? 和 文档中此声明的含义是什么? 会话有时在查询执行之前刷新,以确保查询永远不会返回失效状态。 http://docs.jboss.org/hibernate/orm/3.5/javadoc/org/hibernate/FlushMode.html

当前目录中的java类文件?

“java”如何知道要在不设置类path.ie的情况下执行的类文件。默认情况下是否检查当前目录,或者我们还需要为当前目录设置类路径。

如何使用Java 8流将列表的元素映射到它们的索引?

有了一个字符串列表,我需要构建一个有效对(string, its position in the list) 。 目前我有使用google集合的代码: public Robots(List names) { ImmutableList.Builder builder = ImmutableList.builder(); for (int i = 0; i < names.size(); i++) { builder.add(new Robot(i, names.get(i))); } this.list = builder.build(); } 我想用Java 8流做到这一点。 如果没有索引,我可以这样做: public Robots(List names) { this.list = names.stream() .map(Robot::new) // no index here .collect(collectingAndThen( Collectors.toList(), Collections::unmodifiableList )); } 要获得索引,我必须做这样的事情: […]

流和独特的操作

我有以下代码: class C { String n; C(String n) { this.n = n; } public String getN() { return n; } @Override public boolean equals(Object obj) { return this.getN().equals(((C)obj).getN()); } } List cc = Arrays.asList(new C(“ONE”), new C(“TWO”), new C(“ONE”)); System.out.println(cc.parallelStream().distinct().count()); 但我不明白为什么distinct回报3而不是2。

如何在Selenium Java中设置Chrome的代理设置

我可以为Firefox设置代理设置,如下所示。 org.openqa.selenium.Proxy proxy = new org.openqa.selenium.Proxy(); proxy.setProxyType(ProxyType.MANUAL); proxy.setHttpProxy(CONFIG.getProperty(“hostname”)); proxy.setSslProxy(CONFIG.getProperty(“hostname”)); proxy.setFtpProxy(CONFIG.getProperty(“hostname”)); proxy.setSocksUsername(CONFIG.getProperty(“username”)); proxy.setSocksPassword(CONFIG.getProperty(“password”)); FirefoxProfile fp = new FirefoxProfile(); fp.setProxyPreferences(proxy); driver = new FirefoxDriver(fp); builder = new Actions(driver); bckdbrowser = new WebDriverBackedSelenium(driver, ConfigReader.ENVIRONMENT_URL); 但我也需要为Chrome设置..任何人都可以帮我怎么办? 谢谢Raj

java.security.NoSuchAlgorithmException:找不到任何支持AES / ECB / PKCS7PADDING的提供程序

我试图使用AES算法加密数据。 但是,发生了以下exception。 java.security.NoSuchAlgorithmException: Cannot find any provider supporting AES/ECB/PKCS7PADDING 有人知道这个问题的解决方案吗? 我的JDK版本是1.7。

在JBable中使JButton可单击

这是我想要做的截图: 发生了什么事情,JButton显示正确,但点击它没有任何反应。 经过一些搜索,我发现table.getValueAt()返回的Object是一个String而不是一个JButton … 这是代码: tblResult = new JTable(data,cols) { public TableCellRenderer getCellRenderer( int row, int column ) { return new ClientsTableRenderer(); } }; 我在运行时使用它来填充JTable 🙁 tblResult现在是Clients.rblResult ) SwingUtilities.invokeLater( new Runnable() { public void run() { DefaultTableModel aModel = new DefaultTableModel() { //setting the jtable read only @Override public boolean isCellEditable(int row, int column) { […]