我面临的问题是jlink的服务绑定选项链接了许多模块,似乎没有必要.省略服务绑定选项时,不链接这些模块.
问题:
我的应用程序:应用程序是一个简单的服务,由一个接口,一个提供者和一个使用者组成,每个服务都打包到一个单独的模块中,称为modService,modProvider,modConsumer(详见下文).
操作系统:Windows 10
Jlink 没有 --bind-services产生预期的结果:
jlink --module-path "mods;%JAVA_HOME%\jmods"
--add-modules modConsumer
--output myRuntime
java --list-modules
java.base@9
modConsumer
modService
Run Code Online (Sandbox Code Playgroud)
当应用该--bind-services选项时,我希望另外应该链接模块modProvider.但是,看看会发生什么(三个自定义模块在最后):
jlink --module-path "mods;%JAVA_HOME%\jmods"
--bind-services
--add-modules modConsumer
--output myRuntime
java --list-modules
java.base@9
java.compiler@9
java.datatransfer@9
java.desktop@9
java.logging@9
java.management@9
java.management.rmi@9
java.naming@9
java.prefs@9
java.rmi@9
java.scripting@9
java.security.jgss@9
java.security.sasl@9
java.smartcardio@9
java.xml@9
java.xml.crypto@9
jdk.accessibility@9
jdk.charsets@9
jdk.compiler@9
jdk.crypto.cryptoki@9
jdk.crypto.ec@9
jdk.crypto.mscapi@9
jdk.deploy@9
jdk.dynalink@9
jdk.internal.opt@9
jdk.jartool@9
jdk.javadoc@9
jdk.jdeps@9
jdk.jfr@9
jdk.jlink@9
jdk.localedata@9
jdk.management@9
jdk.management.cmm@9
jdk.management.jfr@9 …Run Code Online (Sandbox Code Playgroud) 在 [1, page 16] Aleksey Shipil?v 中说,Shenandoah 2.0 在 JDK 13 GA 中可用。但是在Complete JDK 13 Release Notes [2](包括JDK 13 GA、JDK 13.0.1 GA、JDK 13.0.2 GA)中,并没有提到Shenandoah。
问: Shenandoah 2.0 在 JDK GA 中的当前状态是什么?它是否在 JDK 13 GA 中可用,或者如果没有,它计划用于哪个版本?
[1] https://shipilev.net/talks/jugbb-Sep2019-shenandoah.pdf
[2] https://www.oracle.com/technetwork/java/javase/13all-relnotes-5461743.html
在Java SE中,可以使用类似
ExecutorService es1 = Executors.newSingleThreadExecutor();
ExecutorService es2 = Executors.newFixedThreadPool(10);
Run Code Online (Sandbox Code Playgroud)
控制执行程序服务可用的线程数。在Java EE 7中,可以注入执行程序服务:
@Resource
private ManagedExecutorService mes;
Run Code Online (Sandbox Code Playgroud)
但是,如何控制托管执行程序服务可用的线程数?例如,在我正在编写的应用程序中,有一个执行程序服务必须在单个线程中执行。因此,我不能只让平台选择其首选的线程数。
我在 Linux 上将 Wildfly 作为服务运行。
我在http://developer-should-know.tumblr.com/post/112230363742/how-to-install-wildfly-as-a-service-on-linux上使用了基于脚本的写得很好的说明[ wildflyhome/bin/init.d/wildfly-init-redhat.sh] 包含在 wildfly 发行版中。此脚本使用声明
JBOSS_CONSOLE_LOG="/var/log/wildfly/console.log"
问题:此配置记录两次:首先在server.log(在 wildflyhome/standalone/log 中),其次在console.log. 这会浪费存储(可能还有一些性能)。
因此我设置
JBOSS_CONSOLE_LOG="wildflyhome/standalone/log/server.log"
但是现在每个日志条目都被写入了两次 server.log -:)
问题:如何配置 wildfly 使其只记录一次?
我正在LongAdder详细分析算法。LongAdder扩展类Striped64,在该类中,基本方法是retryUpdate. 以下代码取自该方法;在链接的源代码中,它占据了第 212-222 行:
try { // Recheck under lock
Cell[] rs; int m, j;
if ( (rs = cells) != null &&
(m = rs.length) > 0 &&
rs[j = (m - 1) & h] == null) {
rs[j] = r;
created = true;
}
} finally {
busy = 0;
}
Run Code Online (Sandbox Code Playgroud)
问题:这个try块怎么会失败?
注意数组访问
rs[j = (m - 1) & h]
Run Code Online (Sandbox Code Playgroud)
不应该抛出 anIndexOutOfBoundsException因为按位与运算的结果总是小于或等于其整数参数的最小值,因此 0 <= j …
Q1: SSLEngine 的枚举 SSLEngineResult.HandshakeStatus 中的NOT_HANDSHAKING和FINISHED状态有什么区别?
Javadoc 只是说
FINISHED:SSLEngine 刚刚完成握手。
NOT_HANDSHAKING:SSLEngine 当前没有握手。
我特别想知道:
Q2:如果初始握手成功执行,引擎应该处于 FINISHED 状态还是 NOT_HANDSHAKING 状态?
让我怀疑的是:这篇文章的示例代码 SSLChannel.java ,告诉
case NOT_HANDSHAKING:
assert false : "doHandshake() should never reach the NOT_HANDSHAKING state";
Run Code Online (Sandbox Code Playgroud)
而在我的示例程序中,初始握手似乎以 NOT_HANDSHAKING 状态结束。所以我不知道这是正常还是错误状态。此外,官方的JSSE 参考指南也没有帮助,因为它只是说
// Handle other status: // FINISHED or NOT_HANDSHAKING
...
Run Code Online (Sandbox Code Playgroud)
任何信息表示赞赏。
我想知道www.w3schools.com/cssref页面的主页图标来自哪里(下图中左上角红色圆圈标记的图标)?
我通过chrome浏览器检查了元素:
<a href="/default.asp" class="topnav-icons fa fa-home w3-left w3-bar-item w3-button" title="Home"></a>
Run Code Online (Sandbox Code Playgroud)
但是,在css类中,我找不到任何创建/显示图标的东西.我还观察到:如果页面是由chrome(或firefox)保存的,那么图标就会丢失:
这表明图标是动态关联的,我无法找到这个地方.
问题:主页图标最终来自哪里?
将java.util.Random注入Bean时,部署失败:
CDI部署失败:WELD-001408:类型为Random的不满意依赖项,注入点为@Default限定符[BackedAnnotatedField] @Inject myPackage.MyBean.random
问题:为什么不能注入java.util.Random类的实例?
我创建了一个具有类似属性的类A(比如具有默认可见性的最终方法),它可以毫无问题地注入.这是代码:
@Named
@SessionScoped
public class MyBean implements Serializable {
@Inject private java.util.Random random; // (R)
@Inject private A a;
...
}
public class A implements Serializable {
int n;
public A() { System.out.println("A"); }
public A(int n) { this.n = n; }
final int nextInt(int bound) { return bound -n; }
}
Run Code Online (Sandbox Code Playgroud)
如果将行(R)注释掉,那么一切都会部署并运行正常.