用Java复制对象

我有一个需要用Java复制的对象。 我需要创建一个副本并在其上运行一些测试而不更改原始对象本身。 我假设我需要使用clone()方法,但这是受保护的。 在网上做了一些研究之后,我可以看到这可以用我class上的公共方法覆盖。 但我找不到如何做到这一点的解释。 怎么可以这样做? 此外,这是实现我需要的最佳方式吗?

如何让maven使用测试资源

当我使用命令:mvn test时,maven使用主要资源而不是src / test / resources中的测试资源。 我如何让maven使用测试资源而不是主要资源? 编辑:我使用Classloader来查找我的资源。 类加载器可以从我的src / test / resources目录中找到资源,但它首先在src / main / java中查找资源。 ClassLoader loader = Thread.currentThread().getContextClassLoader(); InputStream file =loader.getResourceAsStream(“resource.xml”); 或者在运行maven命令时是否可以使用任何属性来优先考虑类路径? 编辑2:我已经发现问题,它确实从测试/资源加载测试,但是我的测试涉及部署webapp(集成测试),当webapp访问资源时,它使用src / main / resources。 有没有办法改变类路径的顺序,或者为一个部署在jetty容器中的WAR使一个在另一个之前?

Runtime.getRuntime()。exec(cmd)挂起

我正在执行一个命令,它返回一个文件的修订号; ‘文件名’。 但是如果执行命令时出现问题,则应用程序会挂起。 我该怎么做才能避免这种情况? 请在下面找到我的代码。 String cmd= “cmd /C si viewhistory –fields=revision –project=”+fileName; Process p = Runtime.getRuntime().exec(cmd) ; BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream())); String line = null; while ((line = in.readLine()) != null) { System.out.println(line); } } catch (Exception e) { e.printStackTrace(); }

加载rJava时出错

当我想加载rJava时出错。 JDK已安装。 (我在CentOS VM上运行R(cloudera demo vm cdh3u4)) > library(rJava) Error : .onLoad failed in loadNamespace() for ‘rJava’, details: call: dyn.load(file, DLLpath = DLLpath, …) error: unable to load shared object ‘/home/cloudera/R/x86_64-redhat-linux-gnu-library/2.15/rJava/libs/rJava.so’: libjvm.so: cannot open shared object file: No such file or directory Error: package/namespace load failed for ‘rJava’ LD_LIBRARY_PATH设置有问题吗? 如果是,我该如何解决? 我需要运行rJava来安装rhdfs。 更多信息(如果需要): [cloudera@localhost ~]$ java […]

PDFBox:如何“压扁”PDF格式?

如何使用PDFBox“展平”PDF格式(删除表单字段但保留字段文本)? 这里回答了同样的问题: 快速执行此操作的方法是从acrofrom中删除字段。 为此,您只需要获取文档目录,然后获取acroform,然后从此acroform中删除所有字段。 图形表示与注释链接并保留在文档中。 所以我写了这段代码: import java.io.File; import java.util.ArrayList; import java.util.List; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.PDDocumentCatalog; import org.apache.pdfbox.pdmodel.interactive.form.PDAcroForm; import org.apache.pdfbox.pdmodel.interactive.form.PDField; public class PdfBoxTest { public void test() throws Exception { PDDocument pdDoc = PDDocument.load(new File(“E:\\Form-Test.pdf”)); PDDocumentCatalog pdCatalog = pdDoc.getDocumentCatalog(); PDAcroForm acroForm = pdCatalog.getAcroForm(); if (acroForm == null) { System.out.println(“No form-field –> stop”); return; } @SuppressWarnings(“unchecked”) […]

我在哪里可以下载mp3plugin.jar来播放Java代码中的MP3?

我需要在Linux环境下用Java代码播放MP3文件( Ubuntu 11.04 )。 我试图从http://www.oracle.com/technetwork/java/javase/download-137625.html下载MP3plugin.jar文件,但我在列表中看不到它。 注意:“我下载了sun Java Media Framework”

在Java中将纯文本转换为HTML文本

我有java程序,它将从服务器接收纯文本。 纯文本可能包含URL。 Java库中是否有任何类将纯文本转换为HTML文本? 还是其他任何图书馆? 如果没有那么解决方案是什么?

Java中的Executor和Daemon

我有一个MyThread对象,当我的应用程序通过服务器加载时,我将其实例化,我将其标记为守护程序线程,然后在其上调用start() 。 只要应用程序处于活动状态,该线程就会等待队列中的信息。 我的问题/问题是:目前MyThread正在扩展Thread,因为我将它标记为守护进程,并且我读到了如何实现Runnable以及使用Executor更令人满意。 所以我想问的是,如果MyThread将实现Runnable而不是扩展Thread(当然将被重命名)并且我将使用newSingleThreadScheduledExecutor()如何,什么或者在哪里,我将某些东西标记为守护进程。 我希望我没有弄乱一些条款,请原谅我,如果我有multithreading环境的某些部分对我来说是新的。 谢谢Ittai 更新:我在我的应用程序中引用的模块是一个web-app,它实际上有几个这样的线程,它们的共同之处在于它们作为成员出于各种原因都在ServletContext中。 目前我将Thread扩展为WebThread ,它将ServletContext作为memebr,所有子类都可以使用它。 如果我使用Executor和ThreadFactory切换到Runnable范例,基本上我需要一个丑陋的WebRunnable混合实现Runnable并将ServletContext作为公共成员并让我的ThreadFactory实现newThread(WebRunnable arg0)以及newThread(Runnable arg0) 。 我不确定什么是最好的。 谢谢

使用Terracotta作为持久性解决方案

使用Terracotta作为持久性解决方案(替换数据库)是不是一个好主意? 我特别想知道数据完整性问题和对事务系统的支持。

notify / notifyall是否释放正在进行的锁定

我有点担心等待并通知/ notifyAll。 我知道每个java对象都有一个锁。 我知道等待将释放其他线程的锁。 通知/ notifyall怎么样? notify / notifyAll会释放它为其他线程持有的锁吗?