杀死Java中调用的子进程的问题

在我的程序中,我调用一个Linux进程,从该进程读取输出,处理它然后睡眠直到下一次迭代。 我遇到的问题是我调用的进程并不总是死,即使我做了childProcess.destroy() 。 这是代码: while(true) { Process childProcess = Runtime.getRuntime().exec(“./getData”); InputStream input = childProcess.getInputStream(); BufferedReader inPipe = new BufferedReader(new InputStreamReader(input)); while((lineRead = inPipe.readLine()) != null) { // do stuff } childProcess.destroy(); inPipe.close(); input.close(); } 绝大多数时候,。/ getData运行,优雅地退出,我的程序按原样运行。 但….有时它不会退出,只是坐在那里消耗CPU。 我需要一种杀掉它的方法。 我也尝试在调用它之前添加它,但这不起作用: Process killGetData = Runtime.getRuntime().exec(“pkill -9 getData”); killGetData.destroy(); 我猜也许我会陷入内在的while()循环中。 感激地收到任何想法,想法和小贴士。 提前谢谢了 约翰

Java动画动画(精灵)

您好我有一个问题:当我运行此代码时,我得到这个: 在一些java论坛上他们说我需要添加Graphics2DObject.clearRect(x1,y1,x2,y2); (其中`x1和y1是图像的坐标,x2 y2是图像的宽度高度。)当我将它添加到代码中时我得到: 代码(附加function): 主要: import java.awt.*; import javax.swing.*; public class Main { public static void main(String []args){ Main b = new Main(); b.run(); } private Sprite sprite; private Animation a; private ScreenManager s; public double sk = 0; private static final DisplayMode modes1[] = { new DisplayMode(800, 600, 32, DisplayMode.REFRESH_RATE_UNKNOWN), }; //load images […]

让BouncyCastle解密GPG加密的消息

如何让BouncyCastle解密GPG加密的邮件? 我使用gpg –gen-key在CentOS 7命令行创建了一个GPG密钥对。 我选择RSA RSA作为加密类型,我使用gpg –export-secret-key -a “User Name” > /home/username/username_private.key导出密钥gpg –export-secret-key -a “User Name” > /home/username/username_private.key和gpg –armor –export 66677FC6 > /home/username/username_pubkey.asc 我能够将username_pubkey.asc导入另一个电子邮件帐户的远程Thunderbird客户端,并成功将加密的电子邮件发送到username@mydomain.com。 但是当我在mydomain.com上运行的Java / BouncyCastle代码尝试解密GPG编码的数据时,它会出现以下错误: org.bouncycastle.openpgp.PGPException: Encrypted message contains a signed message – not literal data. 如果你查看下面的代码,你会看到这与PGPUtils.decryptFile()的行相对应,其中说明了else if (message instanceof PGPOnePassSignatureList) {throw new PGPException(“Encrypted message contains a signed message – not literal data.”); […]

如何通过阅读文本文件创建项目对象?

我正在尝试从文本文件中读取数据并使用它创建项目对象。 Item对象有字段String title,String formatt,boolean onLoan,String loanedTo和String dateLoaned。 在我的save()方法中,我将每个对象打印到新行中的文本文件中,并且字段由“$”(美元符号)分隔。 如何逐行读取文本文件并从每行创建一个新对象并将其添加到数组中。 TextFile示例: 星球大战$ DVD $假为$ null $空 外星人$蓝光$ true时$ $约翰周一 public void save() { String[] array2 = listForSave(); PrintWriter printer = null; try { printer = new PrintWriter(file); for (String o : array2) { printer.println(o); } printer.close(); } catch ( IOException e ) { e.printStackTrace(); } } […]

如何使用Vaadin和SpringViewProvider创建安全视图

有一个关于Vaadin III的教程- 使用Vaadin Spring进行视图和导航 如果我想使用Apache Shiro。 我应该如何使用ViewAccessControl? @SpringComponent @SpringView(name = SecuredView.VIEW_NAME) public class SecuredView extends VerticalLayout implements View, ViewAccessControl { public static final String VIEW_NAME = “view”; @PostConstruct void init() { addComponent(new Label(“This is a secured view scoped view”)); } @Override public boolean isAccessGranted(UI ui, String string) { return true; } } 我得到了例外: org.springframework.beans.factory.BeanCreationException:创建名为’securedView’的bean时出错:Scope’vaadin-view’对当前线程无效; 考虑为这个bean定义一个范围代理,如果你打算从一个单例引用它; […]

如何将hex转换为以下程序的字节?

public static String asHex (byte buf[]) { StringBuffer strbuf = new StringBuffer(buf.length * 2); int i; for (i = 0; i < buf.length; i++) { if (((int) buf[i] & 0xff) < 0x10) strbuf.append("0"); strbuf.append(Long.toString((int) buf[i] & 0xff, 16)); } return strbuf.toString(); }

如何将JPanel绘制为Nimbus JButton?

在Nimbus的外观和感觉JButtons有一个非常整洁和准确的外观,圆形边框和漂亮的背景。 我想渲染具有相同外观的JPanel(显然它不会有按下状态等)。 我有什么选择?

关闭I / O流

当我不关闭流时会发生什么坏事? 关闭操作是否自动冲洗? 程序退出后是否所有流都关闭了? 提前致谢。

阻止Jackson中的自动String to Integer转换

我有一个简单的POJO: public class ADate { private Integer day; private Integer month; private Integer year; … // getters/setters/constructor } 以下JSON文档正确反序列化为ADate : { “day”:”10″, “month”:”2″, “year”:”1972″ } Jackson自动将String转换为Integer。 有没有办法避免这种自动转换,如果将Integer值定义为String,则让Jackson失败。

如何使用基于表单登录的java Web应用程序通过AJAX处理身份validation

我有一个在WebSphere 7上运行的java Web应用程序。该应用程序使用表单身份validation方法,部分应用程序使用ajax请求访问某些受保护资源。 但是,当用户的会话到期时,我将获取登录页面来代替应该由ajax请求刷新的内容。 有没有办法处理这个问题? WebSphere使用登录页面返回响应状态200,因此我不能依赖它。 也许有办法告诉服务器在某些情况下应该使用基本身份validation,但我不知道如何使用。 我还想过先检查会话是否是新的,首先请求不受保护的资源然后返回某个状态,但它看起来像代码味道解决方案……