小编use*_*513的帖子

jlink:服务绑定链接许多不必要的模块

我面临的问题是jlink的服务绑定选项链接了许多模块,似乎没有必要.省略服务绑定选项时,不链接这些模块.

问题:

  • Q1:您是否在环境中看到了相同的行为?
  • Q2:这是一个错误还是一个理想的行为?
  • 问题3:为什么所有这些模块都链接在一起?

我的应用程序:应用程序是一个简单的服务,由一个接口,一个提供者和一个使用者组成,每个服务都打包到一个单独的模块中,称为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)

java jlink java-platform-module-system java-9

8
推荐指数
2
解决办法
626
查看次数

JDK 中 Shenandoah 2.0 的可用性

在 [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 garbage-collection shenandoah

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

控制ManagedExecutorServices / Java EE 7的线程数

在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)

但是,如何控制托管执行程序服务可用的线程数?例如,在我正在编写的应用程序中,有一个执行程序服务必须在单个线程中执行。因此,我不能只让平台选择其首选的线程数。

java multithreading java-ee java-ee-7

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

Wildfly 即服务:如何只登录一次?

我在 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 使其只记录一次?

jboss wildfly

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

LongAdder:try 块怎么会失败?

我正在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 …

java algorithm finally try-catch

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

NOT_HANDSHAKING 和 FINISHED 的区别

Q1: SSLEngine 的枚举 SSLEngineResult.HandshakeStatus 中的NOT_HANDSHAKINGFINISHED状态有什么区别?

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)

任何信息表示赞赏。

java ssl

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

该网站的主页图标来自哪里?

我想知道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)保存的,那么图标就会丢失:

网页已保存

这表明图标是动态关联的,我无法找到这个地方.

问题:主页图标最终来自哪里?

html javascript css

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

为什么不能注入java.util.Random?

将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)注释掉,那么一切都会部署并运行正常.

java cdi weld

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