小编Bha*_*ani的帖子

在java中运行bash shell脚本

我想从我的程序运行一个shell脚本,但它似乎没有做任何事情.我在linux终端直接运行相同的命令,它工作正常,所以我猜它是我的java代码.正如您所看到的,我首先使用PrintWriter将命令写入shell脚本,但我希望这不会影响shell脚本本身的运行.任何帮助,将不胜感激!

    public static void main(String[] args) {
    // TODO Auto-generated method stub

    String nfdump = "nfdump -o csv -r /home/shane/Documents/nfdump/nfcapd.201211211526>blank.txt";

    try {
        FileWriter fw = new FileWriter("/home/shane/Documents/script.sh");

        PrintWriter pw = new PrintWriter(fw);

        pw.println("#!/bin/bash");
        pw.println(nfdump);

        pw.close();
    } catch (IOException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }

    Process proc = null;

    try {
        proc = Runtime.getRuntime().exec("sh /home/shane/Documents/script.sh");
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
Run Code Online (Sandbox Code Playgroud)

java shell

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

C#编译器输出与C++/CLI编译器的区别

我有一个WPF应用程序,可以在大型数据集中进行大量匹配,目前它使用C#和LINQ来匹配POCO并在网格中显示.随着所包含数据集的数量增加,数据量增加,我被要求查看性能问题.我今天晚上测试的一个假设是,如果我们将一些代码转换为C++ CLI,是否存在实质性差异.为此,我编写了一个简单的测试,创建了List<>5,000,000个项目,然后做了一些简单的匹配.基本对象结构是:

public class CsClassWithProps
{
    public CsClassWithProps()
    {
        CreateDate = DateTime.Now;
    }

    public long Id { get; set; }
    public string Name { get; set; }
    public DateTime CreateDate { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我注意到的一件事是,平均而言,对于创建列表的简单测试,然后构建具有偶数ID的所有对象的子列表,C++/CLI代码在我的开发机器上慢了大约8%(64位Win8) ,8GB的RAM).例如,创建和过滤C#对象的情况需要大约7秒,而C++/CLI代码平均需要大约8秒.好奇,为什么这会是这样,我用ILDASM看看发生了什么在幕后发生的事情,并惊讶地看到,C++/CLI代码是在构造函数额外的步骤.首先是测试代码:

static void CreateCppObjectWithMembers()
{
    List<CppClassWithMembers> results = new List<CppClassWithMembers>();

    Stopwatch sw = new Stopwatch();

    sw.Start();

    for (int i = 0; i < Iterations; i++)
    {
        results.Add(new CppClassWithMembers() { Id = i, Name = string.Format("Name {0}", i) });
    }

    var halfResults = …
Run Code Online (Sandbox Code Playgroud)

c# testing performance c++-cli visual-c++

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

JAXB编组Java以输出XML文件

问题是如何生成XML文件输出而不是system.out?

package jaxbintroduction;

import java.io.FileOutputStream;
import java.io.OutputStream;

public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        itemorder.Book quickXML = new itemorder.Book();

        quickXML.setAuthor("Sillyme");
        quickXML.setDescription("Dummie book");
        quickXML.setISBN(123456789);
        quickXML.setPrice((float)12.6);
        quickXML.setPublisher("Progress");
        quickXML.setTitle("Hello World JAVA");

        try {            
            javax.xml.bind.JAXBContext jaxbCtx = javax.xml.bind.JAXBContext.newInstance(quickXML.getClass().getPackage().getName());
            javax.xml.bind.Marshaller marshaller = jaxbCtx.createMarshaller();
            marshaller.setProperty(javax.xml.bind.Marshaller.JAXB_ENCODING, "UTF-8"); //NOI18N
            marshaller.setProperty(javax.xml.bind.Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
            marshaller.marshal(quickXML, System.out);
            OutputStream os = new FileOutputStream( "nosferatu.xml" );
            marshaller.marshal( quickXML, os );

        } catch (javax.xml.bind.JAXBException ex) {
            // …
Run Code Online (Sandbox Code Playgroud)

java xml jaxb marshalling

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

拦截日志消息slf4j

我有一个使用slf4j作为日志记录的应用程序.现在,我希望在传输到底层日志记录系统之前拦截所有错误消息.是否有可能为slf4j做到这一点?我仔细查看了文档,看到我们可以在实现中更改Appender(比如log4j)来实现这一点,但是我们可以在门面层面自己做吗?拦截执行基本操作,例如递增错误消息数量的全局计数器等.

java logging slf4j

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

Android:Fragments,SQLite和Loaders

所以我已经到了需要为我的应用程序实现SQLite数据库的地步.在"繁忙的编码器Android开发指南"之后,我创建了一个扩展的DatabaseHelper类SQLiteOpenHelper.

我的一个用例是对数据库运行查询并在a ListView内显示结果Fragment(我使用支持库中的片段).

根据我的理解,使用managedQuery()并不是真正合适的,即使它是不推荐的,因为这个方法中封装的一些逻辑实际上是在主线程上执行的,具体reQuery()是我理解的时候执行的Activity重新启动.

所以我Loader第一次尝试熟悉这门课,只看到这个:

"The only supplied concrete implementation of a Loader is CursorLoader, and that is only for use with a ContentProvider"

我最初的想法是实现我自己的内容提供商,并可能阻止其他应用程序访问它,然后我ContentProvider通过developer.android.com 阅读文档中的以下内容:

"You don't need a provider to use an SQLite database if the use is entirely within your own application."

我也一直在玩这个:

https://github.com/commonsguy/cwac-loaderex

但我不熟悉这个项目,也不确定它是否可以在生产环境中使用.

所以,现在我能想到的是AsyncTask在我的内部创建一堆实例Fragment并适当地管理它们的生命周期,确保它们在需要时被取消等等.

还有其他选择吗?

java sqlite android android-fragments

13
推荐指数
3
解决办法
3939
查看次数

可运行的接口示例

public class CreateThreadRunnableExample implements Runnable {

    public void run() {

        for (int i = 0; i < 5; i++) {
            System.out.println("Child Thread : " + i);

            try {
                Thread.sleep(50);
            } catch (InterruptedException ie) {
                System.out.println("Child thread interrupted! " + ie);
            }
        }

        System.out.println("Child thread finished!");
    }

    public static void main(String[] args) {

        Thread t = new Thread(new CreateThreadRunnableExample(), "My Thread");

        t.start();

        for (int i = 0; i < 5; i++) {

            System.out.println("Main thread : " + i);

            try {
                Thread.sleep(100); …
Run Code Online (Sandbox Code Playgroud)

java multithreading

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

用于Java的SNMP库

我需要对各种SNMP库进行可行性研究.目前我正在使用SNMP4J.我的要求是将各种库与其功能进行比较.我无法找到任何有用的参考链接.请有人建议任何链接.

java snmp libraries snmp4j

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

Java socketRead0问题

我正在使用htmlunit开发一个web cralwer并且我已经添加了所有必需的超时但我注意到当我使用Java VisualVM进行线程转储时,当某个网站的服务器被爬网时,应用程序挂起:

java.lang.Thread.State: RUNNABLE
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:129)
at java.net.SocksSocketImpl.readSocksReply(SocksSocketImpl.java:88)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:429)
at java.net.Socket.connect(Socket.java:525)
at com.gargoylesoftware.htmlunit.SocksSocketFactory.connectSocket(SocksSocketFactory.java:89)
at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:148)
at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:149)
at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:121)
at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:573)
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:425)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:820)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:776)
at com.gargoylesoftware.htmlunit.HttpWebConnection.getResponse(HttpWebConnection.java:152)
at app.plugin.core.net.QHttpWebConnection.getResponse(QHttpWebConnection.java:30)
at com.gargoylesoftware.htmlunit.WebClient.loadWebResponseFromWebConnection(WebClient.java:1439)
at com.gargoylesoftware.htmlunit.WebClient.loadWebResponse(WebClient.java:1358)
at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:307)
at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:373)
at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:358)
Run Code Online (Sandbox Code Playgroud)

这真是令人沮丧,因为我无法控制这些服务器.此问题严重影响了我的应用程序的性能.

题:

  1. 我该如何解决这个问题?
  2. 有没有办法获取Java应用程序打开的套接字连接列表并使用它来终止套接字,就像服务器关闭连接的模拟一样?

java sockets

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

存档选项在xcode 4.5.2中显示为灰色

我已经使用Xcode创建了应用程序.它已经准备好在iTunes连接上传了..但是应用程序加载器似乎太慢了.其他归档方法看起来很好用,但在Xcode 4.5.2中禁用了该选项

操作:我尝试编辑方案并选择存档(发布选项)以及目标到我的设备...我也建立之后我将目标设置为SKIP INSTALL为NO.

我跟着指示在这个论坛上看到了很少的帖子..但似乎没有一个对我有用

我知道如何获得该选项avtive agn ...我的应用程序在我的itouch和正常工作..所以没有设备问题.

upload xcode archive

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

docker jboss7战争提交.服务器启动以不可恢复的方式失败

有没有办法将.war文件部署到在docker容器内运行的Jboss-as7中

因为我的jboss服务器在docker提交后似乎失败了.

Could not rename    /usr/local/share/jboss/standalone/configuration/standalone_xml_history/current to  /usr/local/share/jboss/standalone/configuration/standalone_xml_history/20140107-050049692
Run Code Online (Sandbox Code Playgroud)

我试过了

chmod +w usr/local/share/jboss/standalone/configuration/standalone_xml_history
Run Code Online (Sandbox Code Playgroud)

参考:

https://docs.jboss.org/author/display/AS7/Configuration+file+history

现在,如果我停止docker容器,我必须部署war文件,之后不要进行docker commit.

我正在使用ubuntu 12.04在vagrant上运行

我使用主管来运行ssh和jboss7.

我的主管档案:

[supervisord]
nodaemon=true

[program:sshd]
command=/usr/sbin/sshd -D
stdout_logfile=/var/log/supervisor/%(program_name)s.log
stderr_logfile=/var/log/supervisor/%(program_name)s.log
autorestart=true

[program:jboss]

command=/usr/local/share/jboss/bin/./standalone.sh -Djboss.bind.address=0.0.0.0 -Djboss.bind.address.management=0.0.0.0
stdout_logfile=/var/log/supervisor/%(program_name)s.log
stderr_logfile=/var/log/supervisor/%(program_name)s.log
autorestart=true
Run Code Online (Sandbox Code Playgroud)

接下来我的步骤:

vagrant up
[default] Forwarding ports...
[default] -- 10022 => 10022 (adapter 1)
[default] -- 8080 => 18080 (adapter 1)
Run Code Online (Sandbox Code Playgroud)

Jboss-as7日志:

05:00:49,135 INFO  [org.jboss.as.remoting] (MSC service thread 1-4) JBAS017100: Listening on /0.0.0.0:4447
05:00:49,155 INFO  [org.jboss.as.remoting] (MSC service thread 1-3) JBAS017100: Listening on /0.0.0.0:9999
05:00:49,253 INFO …
Run Code Online (Sandbox Code Playgroud)

java jboss docker

9
推荐指数
2
解决办法
5865
查看次数