小编Phi*_*lip的帖子

在SQL中以分钟为单位重叠两个日期范围

有一种简单的方法可以在SQL中的两个日期范围的分钟内获得重叠吗?我正在使用PostgreSQL.

postgresql date range overlap

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

使用Java设置Windows系统变量

有没有办法将特定目录添加到Windows系统变量%PATH%?这似乎不起作用:

String[] cmd = { "cmd", "/c", "set", "PATH=\"%PATH%;c:\\test\"" };
Runtime.getRuntime().exec( cmd );
Run Code Online (Sandbox Code Playgroud)

c:\ test \没有出现在System.getenv("PATH")中; 或者在输出中

String[] cmd = { "cmd", "/c", "echo", "%PATH%" };
Runtime.getRuntime().exec( cmd );
Run Code Online (Sandbox Code Playgroud)

我需要的是修改Windows下当前Java-Process的%PATH%-variable.原因是,我需要加载一些相互交叉引用的本机dll文件.所以我想将应用程序路径添加到Windows环境中.

我试过的下一件事是用于C-Function"putenv"的小型JNI-Wrapper,它看起来像这样:

JNIEXPORT void JNICALL Java_com_splitscreen_AppletTest_PutEnv_putEnv
  (JNIEnv *env, jobject jobj, jstring val) {

    jboolean iscopy;

    const char *mvalue = (*env)->GetStringUTFChars(
                env, val, &iscopy);

    putenv(mvalue);
}
Run Code Online (Sandbox Code Playgroud)

这就是我所说的:

final String curPath = System.getenv( "PATH" );
final PutEnv pe = new PutEnv();
pe.putEnv( "PATH=" + curPath + ";c:\test" );

final String newPath = System.getenv( …
Run Code Online (Sandbox Code Playgroud)

java windows environment

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

Java RMI - 从Ubuntu到OSX的远程调用超级慢

当我从OSX服务器上的RMI Ubuntu客户端调用方法传递UnicastRemoteObject作为参数时,事情非常缓慢.这么慢,最终,它会被执行但更有可能,我会在2-3分钟之后得到超时异常.两台机器都在同一个网络中.这是一个新安装的Ubuntu 12.04.我可以从Ubuntu机器telnet到使用的RMI端口上的OSX,所以在这一点上,它似乎不是一个问题.我也可以在没有这个UnicastRemoteObject参数的情况下调用服务器上的方法,一切正常.从OSX到OSX也很好......

这就是服务器的启动方式:

LocateRegistry.createRegistry(port);
nodeManager = new NodeManagerImpl(maxConfigurationsPerNode, true);
Registry registry = LocateRegistry.getRegistry(host, port);
registry.rebind("NodeManager", nodeManager);
Run Code Online (Sandbox Code Playgroud)

这就是客户端如何连接并调用方法:

Registry registry = LocateRegistry.getRegistry(host, port);
nodeManager = (NodeManager) registry.lookup("NodeManager");
handler = new NodeHandlerImpl();
id = nodeManager.register(handler, id);
Run Code Online (Sandbox Code Playgroud)

NodeHandlerImpl基本上是这样的:

public class NodeHandlerImpl extends UnicastRemoteObject implements NodeHandler {
    public NodeHandlerImpl(boolean noSSL) throws RemoteException {
        super(0, null, null);
    }
....
}
Run Code Online (Sandbox Code Playgroud)

对"注册"的调用是一个需要多年的时间...... NodeHandler扩展了Remote.当我删除参数处理程序时,一切正常...

几个小时后我有点卡在这里,任何线索都会很棒.

//编辑:是的,反向DNS是错误.有了这个提示,我找到了这个网站:http: //www.communardo.de/home/techblog/2008/09/17/rmi-kommunikation-zu-remote-hosts-mit-unguenstiger-dns-konfiguration/

所以我将客户端连接代码更改为以下内容,一切都很好:

System.setProperty("java.rmi.server.hostname", host);
Registry registry = LocateRegistry.getRegistry(host, port);
nodeManager = (NodeManager) registry.lookup("NodeManager");
handler = new NodeHandlerImpl();
id …
Run Code Online (Sandbox Code Playgroud)

java rmi

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

标签 统计

java ×2

date ×1

environment ×1

overlap ×1

postgresql ×1

range ×1

rmi ×1

windows ×1