我有在运行 Java 应用程序之前设置环境变量的 shell 脚本。我想在 IDE 中运行/调试之前在 IntelliJ 中调用这些脚本。我发现我可以将它们配置为在“配置”->“启动前”下作为外部工具运行。然而,它们似乎在另一个窗口中运行,并且环境变量不会转移到启动 JVM 的会话中。有什么办法可以实现这一点吗?谢谢。
有人可以在Java中提供完整的tailable游标示例吗?我使用3.0驱动程序,所有示例似乎是2.x. 我的classpath中只有mongo-java-driver-3.0.0.jar.我希望得到所有文件,因为它们被插入到我的上限集合中.
//this does not work...
MongoCollection<BasicDBObject> col = database.getCollection(colName, BasicDBObject.class);
DBCursor cur = col.find().sort(new BasicDBObject("$natural", 1))
.addOption(Bytes.QUERYOPTION_TAILABLE)
.addOption(Bytes.QUERYOPTION_AWAITDATA);
// And this does not work...
BasicDBObjectBuilder builder = BasicDBObjectBuilder.start();
builder.add("messageType","STATUS_REQUEST");
DBObject searchQuery = builder.get();
DBObject sortBy = BasicDBObjectBuilder.start("$natural", 1).get();
BasicDBObjectBuilder builderForFields = BasicDBObjectBuilder.start();
DBObject fields = builderForFields.get();
DBCursor cursor = new DBCursor(col, searchQuery, fields, ReadPreference.primary() );
cursor.sort(sortBy);
cursor.addOption(Bytes.QUERYOPTION_AWAITDATA);
cursor.addOption(Bytes.QUERYOPTION_TAILABLE);
//this does work but only returns the messageNumber field. I need the doc.
MongoCursor<Long> c = database.getCollection(colName).distinct("messageNumber", Long.class).iterator();
Run Code Online (Sandbox Code Playgroud)
我看到MongoCursor接口是在3.0中添加的.这是什么,它取代了DBCursor?
非常感谢
我有 2 个项目,my-app 和 string-utils。My-app 依赖于 string-utils。在构建我的应用程序时,我得到:
“在根项目‘my-app’中找不到路径为‘:string-utils’的项目
不应该 includeBuild 在这里工作吗?
我的 Gradle 扫描在这里。
??? my-app
? ??? build
? ??? build.gradle
? ??? settings.gradle
? ??? src
??? string-utils
??? build
??? build.gradle
??? settings.gradle
??? src
Run Code Online (Sandbox Code Playgroud)
/my-app/settings.gradle:
rootProject.name = 'my-app'
includeBuild '../string-utils'
Run Code Online (Sandbox Code Playgroud)
/my-app/build.gradle:
plugins {
id 'java'
id 'application'
id 'idea'
}
group "org.sample"
version "1.0"
application {
mainClassName = "org.sample.myapp.Main"
}
dependencies {
implementation project(':string-utils')
}
repositories {
jcenter()
}
Run Code Online (Sandbox Code Playgroud)
/string-utils/settings.gradle:
rootProject.name = 'string-utils'
Run Code Online (Sandbox Code Playgroud)
运行时: …
我已经做到了...
myStage.initStyle(StageStyle.UTILITY);
Run Code Online (Sandbox Code Playgroud)
可以很好地删除最大化按钮,但是仍然可以双击窗口标题栏(在Windows中)以最大化窗口。
我试过了,但没有成功。
myStage.fullScreenProperty().addListener(new ChangeListener<Boolean>() {
@Override
public void changed(ObservableValue<? extends Boolean> prop, Boolean wasIconified, Boolean isIconified) {
System.out.println("ignore fullscreen");
}
});
Run Code Online (Sandbox Code Playgroud)
是否有其他方法可以消耗该事件,所以它没有效果?
打电话时:
MQQueueConnectionFactory cf ...
cf.createConnection();
Run Code Online (Sandbox Code Playgroud)
com.ibm.mq.jmqi.remote.impl.RemoteTCPConnection.handshakeCompleted 方法开始:
public void handshakeCompleted(HandshakeCompletedEvent event) {
X509Certificate[] peerCertificateChain = event.getPeerCertificateChain();
...
Run Code Online (Sandbox Code Playgroud)
javax.net.ssl.SSLSession 中的 getPeerCertificateChain:
default X509Certificate[] getPeerCertificateChain() throws SSLPeerUnverifiedException {
throw new UnsupportedOperationException("This method is deprecated and marked for removal. Use the getPeerCertificates() method instead.");
}
Run Code Online (Sandbox Code Playgroud)
导致此异常:
Exception in thread "HandshakeCompletedNotify-Thread" java.lang.UnsupportedOperationException: This method is deprecated and marked for removal. Use the getPeerCertificates() method instead.
at java.base/javax.net.ssl.SSLSession.getPeerCertificateChain(SSLSession.java:295)
at java.base/javax.net.ssl.HandshakeCompletedEvent.getPeerCertificateChain(HandshakeCompletedEvent.java:173)
at com.ibm.mq.jmqi.remote.impl.RemoteTCPConnection.handshakeCompleted(RemoteTCPConnection.java:2448)
at java.base/sun.security.ssl.TransportContext$NotifyHandshake$1.run(TransportContext.java:685)
at java.base/sun.security.ssl.TransportContext$NotifyHandshake$1.run(TransportContext.java:682)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
at java.base/sun.security.ssl.TransportContext$NotifyHandshake.run(TransportContext.java:682)
at java.base/java.lang.Thread.run(Thread.java:832)
Run Code Online (Sandbox Code Playgroud)
该项目唯一的 IBM MQ …
当我尝试关闭io.netty.channel.Channel TCP/IP客户端连接时,My Netty应用程序挂起.
我做:
ch.isOpen(); //this is TRUE
ch.closeFuture().sync(); //never returns
Run Code Online (Sandbox Code Playgroud)
线程调用同步的堆栈跟踪在这里.
JavaFX Application Thread@583, prio=5, in group 'main', status: 'WAIT'
at java.lang.Object.wait(Object.java:-1)
at java.lang.Object.wait(Object.java:502)
at io.netty.util.concurrent.DefaultPromise.await(DefaultPromise.java:260)
at io.netty.channel.DefaultChannelPromise.await(DefaultChannelPromise.java:129)
at io.netty.channel.DefaultChannelPromise.await(DefaultChannelPromise.java:28)
at io.netty.util.concurrent.DefaultPromise.sync(DefaultPromise.java:224)
at io.netty.channel.DefaultChannelPromise.sync(DefaultChannelPromise.java:117)
at io.netty.channel.DefaultChannelPromise.sync(DefaultChannelPromise.java:28)
at MyClient.stop(MyClient.java:46)
Run Code Online (Sandbox Code Playgroud)
有什么东西可以阻止频道关闭吗?我可以用另一种方式强制关闭吗?
谢谢!