小编Vin*_*esh的帖子

如何在Java中通过exec使用Pipe符号

我使用以下代码来获取系统中运行的所有进程的详细信息:

Process p = Runtime.getRuntime().exec("ps aux");
BufferedReader stdInput = new BufferedReader(new 
             InputStreamReader(p.getInputStream()));
BufferedReader stdError = new BufferedReader(new 
             InputStreamReader(p.getErrorStream()));
Run Code Online (Sandbox Code Playgroud)

我想ps aux用管道符号过滤掉,所以我用它:

Process p = Runtime.getRuntime().exec("ps aux | grep java");
Run Code Online (Sandbox Code Playgroud)

它转到ErrorStream.后来我注意到管道符号(|)在Java中用作Bitwise包含OR运算符.所以我在管道符号前面使用了反斜杠,如下所示:

Process p = Runtime.getRuntime().exec("ps aux \\| grep java"); 
Run Code Online (Sandbox Code Playgroud)

但它再次进入ErrorStream.我如何ps aux | grep java在Java中运行exec?

java pipe exec

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

如何通过 JMX 获取网络 I/O 和磁盘 I/O

我一直致力于使用 JMX 获取系统指标,例如 CPU、内存、网络 I/O、磁盘 I/O。

  • 对于 CPU,我使用了函数 OperatingSystemMXBean.getSystemLoadAverage() 并获得了 CPU 的负载。

  • 对于内存,我使用了函数 OperatingSystemMXBean.getTotalPhysicalMemorySize() 和 OperatingSystemMXBean.getFreePhysicalMemorySize()。

有没有通过JMX获取网络I/O和磁盘I/O的功能?

java jmx

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

URL 验证 无协议

我在 java 中使用 URLValidator 类来验证 URL 。但我希望如果用户不会在 URL 中提供任何协议,那么验证也应该返回为有效。

正确解释:如果在 URL "http://www.google.com" 中提供了它,那么它也应该是一个有效的 URL,如果提供了 "www.google.com",那么验证也应该作为有效的 URL 返回。

我已经尝试了很多。请帮助我。提前致谢。

java url

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

如何用来自servlet的调度数据填充jsp中的html表单?

我是JSP和Servlet的新手.我需要你在以下任务中提出建议.我有一个jsp页面,它有一个html表单,它接受用户的一些信息.

JSP页面info.jsp

<%@ page contentType="text/html; charset=iso-8859-1" language="java" import="java.sql.*" errorPage="" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>

<body>
<%
    if(request.getAttribute("reply")!=null){
        out.println(request.getAttribute("reply"));
    }
%>

<form action="actionservlet" method="post" name="myform">
user Name:<input name="username" type="text" size="10" /><br />
First Name:<input name="username" type="text" size="10" /><br />
Last Name:<input name="username" type="text" size="10" /><br />
Email id:<input name="username" type="text" size="10" /><br />
<input name="submit" type="submit" value="Submit" />
<input name="Reset" type="reset" value="Reset" />

</form>
</body>
</html> …
Run Code Online (Sandbox Code Playgroud)

forms jsp servlets

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

哪个文件在unix中包含星号

所有

在这里,我发布我对星号文件的疑问,首先我创建一个文件

touch test* 
Run Code Online (Sandbox Code Playgroud)

如果我检查ls -lrt它显示test*当前的文件.然后我使用删除该文件rm *.然后我创建两个test1* test2*使用相同触摸命令的文件.如果我检查ls -lrt.这显示这两个文件是test1*test2*.我再次test*使用touch命令创建,现在我检查ls -lrt.这次它不会显示文件test*.为什么test*文件没有列出?

感谢和问候

unix

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

同步方法不是线程安全的

有人可以让我知道为什么下面的代码不是线程安全的?我得到的输出是0或45或90.共享资源计数器有一个同步方法,所以我一直期望90输出.我在这里错过了什么吗?请指教.请允许,也让我知道如何使这个代码线程安全.

class Counter{

    long count = 0;

    public synchronized void add(long value){
      this.count += value;
    }
 }
 class CounterThread extends Thread{

    protected Counter counter = null;

    public CounterThread(Counter counter){
       this.counter = counter;
    }

    public void run() {
    for(int i=0; i<10; i++){
          counter.add(i);
       }
    }
 }
 public class Example {

   public static void main(String[] args){

     Counter counter = new Counter();
     Thread  threadA = new CounterThread(counter);
     Thread  threadB = new CounterThread(counter);

     threadA.start();
     threadB.start();

     System.out.println(counter.count);
   }
 }
Run Code Online (Sandbox Code Playgroud)

java multithreading synchronization

0
推荐指数
2
解决办法
461
查看次数

标签 统计

java ×4

exec ×1

forms ×1

jmx ×1

jsp ×1

multithreading ×1

pipe ×1

servlets ×1

synchronization ×1

unix ×1

url ×1