小编Eri*_*luk的帖子

JDT编织目前已被禁用

我刚刚安装了Eclipse标准4.4 Luna,在安装了Scala IDE和我得到的朋友之后

JDT Weaving is currently disabled. The Scala IDE needs JDT Weaving to be active,
or it will not work correctly. 

Activate JDT Weaving and Restart Eclipse? (Highly Recommended)

[OK] [Cancel]
Run Code Online (Sandbox Code Playgroud)

有谁知道如何做到这一点?

现在我对此错误消息的评论

  • 一般来说,错误消息会告诉您该做什么,而不是如何做到这一点令人沮丧.
  • [确定]按钮表示对话框将为我启用它,但它与单击[取消]按钮完全相同.因此,UI设计是有缺陷的.
  • Luna中的首选项对话框在JDT或Weaving下不显示任何内容.
  • 在Luna中搜索"JTD Weaving"的帮助会返回太多信息,无法提供任何简单的解决方案.
  • 我通过谷歌搜索引发了有关该问题的有趣讨论,但未能简单地说明解决方案,或者是否存在解决方案.

https://groups.google.com/forum/#!msg/scala-ide-user/7GdTuQHyP4Q/aiUt70lnzigJ

scala eclipse-jdt scala-ide

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

afterRender是否可以使用Knockout组件?

afterRender使用模板绑定,但在将模板转换为组件后,似乎没有任何使用方法afterRender.我试过寻找一个使用afterRender但无法找到任何东西的组件的例子.

knockout.js knockout-components

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

如何使用结构化并发运行 JDK 19?

我已对此进行了编辑,以使原始帖子的内容保持最新。

我想尝试JEP 428:结构化并发(孵化器)中定义的新Project Loom功能

我的 pom.xml 中有

<properties>
  <maven.compiler.executable>${env.JAVA_HOME}/bin/javac</maven.compiler.executable>
  <maven.compiler.source>19</maven.compiler.source>
  <maven.compiler.target>19</maven.compiler.target>
</properties>

. . .

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-compiler-plugin</artifactId>
  <version>3.10.1</version>
  <configuration>
    <compilerArgs>
      <arg>--add-modules=jdk.incubator.concurrent</arg>
      <arg>--enable-preview</arg>
    </compilerArgs>
  </configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)

其中JAVA_HOME指向 JDK 19,但是当我尝试通过构建时,mvn compile我得到

[ERROR] C:\Users\ERIC\Documents\git\loom-lab\laboratory\src\main\java\net\kolotyluk\loom\Structured.java:3:20:  error: package jdk.incubator.concurrent is not visible
[ERROR] C:\Users\ERIC\Documents\git\loom-lab\laboratory\src\main\java\net\kolotyluk\loom\Structures.java:3:20:  error: package jdk.incubator.concurrent is not visible
. . .
Run Code Online (Sandbox Code Playgroud)

很多人在这方面帮助了我,显然他们可以让它发挥作用,但由于某种原因,我无法开始mvn compile工作。

不过,我可以让代码在 IntelliJ 下编译和运行。当我可以让 IntelliJ 编译时,我从来没有无法让 Maven 编译。通常,情况恰恰相反。

java project-loom java-19

11
推荐指数
2
解决办法
4879
查看次数

Java 9 - 我可以将MainClass属性添加到存档中的module-info.class吗?

在Java 9中,您可以使用创建JAR文件

jar --create --file=mlib/com.greetings.jar --main-class=com.greetings.Main -C mods/com.greetings .
Run Code Online (Sandbox Code Playgroud)

其中包含将MainClass属性添加到.jar文件中的module-info.class文件的副作用.

是否有任何插件支持这个,或者我是否需要直接调用Java 9'jar'命令?

这是提出这些问题的正确论坛,还是有更好的地方?

干杯,埃里克

java maven-3 maven java-9

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

Akka HTTP是否可以与Akka Typed一起使用?

val behavior: Behavior[Message] = Behaviors.setup {
  actorContext ?
    logger.info("starting...")

    implicit val actorSystem = actorContext.system.asInstanceOf[ActorSystem]
    implicit val materializer = ActorMaterializer()(actorContext.asInstanceOf[ActorContext])
    implicit val executionContext = actorContext.executionContext

    val route =
      path("hello") {
        get {
          complete(HttpEntity(ContentTypes.`text/html(UTF-8)`, "<h1>Say hello to akka-http</h1>"))
        }
      }

    val bindingFuture = Http().bindAndHandle(route, "localhost", 8888)
Run Code Online (Sandbox Code Playgroud)

可以编译,但是当我运行代码时,我得到了

20:44:22.586 [Leaderboard-akka.actor.default-dispatcher-3] INFO net.kolotyluk.leaderboard.service.REST$ - starting...
[ERROR] [04/02/2018 20:44:22.592] [Leaderboard-akka.actor.default-dispatcher-2] [akka://Leaderboard/user/Http]
akka.actor.typed.internal.adapter.ActorSystemAdapter cannot be cast to akka.actor.ActorSystem
akka.actor.ActorInitializationException: akka://Leaderboard/user/Http: exception during creation
Run Code Online (Sandbox Code Playgroud)

有一些简单的解决方案吗?如何提供Http()ActorSystem所需的资源?

Akka Typed似乎不能与其他Akka库一起使用

scala akka akka-http akka-typed

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

如何解决 Scala 包名称冲突?

package net.kolotyluk

package object leaderboard {
  def randomLong: Long = {
    val random = scala.util.Random
    random.setSeed(System.nanoTime)
    random.nextLong
  }
}
Run Code Online (Sandbox Code Playgroud)

无法编译

[error] D:\Users\erick\repos\leaderboard\src\main\scala\net\kolotyluk\leaderboard\package.scala:7:24: object util is not a member of package net.kolotyluk.scala
[error]     val random = scala.util.Random
[error]                        ^
[error] one error found
[error] (compile:compileIncremental) Compilation failed
Run Code Online (Sandbox Code Playgroud)

我怀疑问题是我net.kolotyluk.scala.extras在其他地方定义了包。为什么 Scala 找不到scala.util.Random?这看起来像是 Scala 编译器或 Scala 语言本身的缺陷。

有没有办法导入/指定绝对包名称而不是此处似乎使用的相对包名称?

正如https://docs.scala-lang.org/tour/packages-and-imports.html中提到的那样,使用import __root__.scala.util.Random似乎不起作用,因为

[error] D:\Users\erick\repos\leaderboard\src\main\scala\net\kolotyluk\leaderboard\package.scala:3:8: not found: object __root__
[error] import __root__.scala.util.Random
[error]        ^
Run Code Online (Sandbox Code Playgroud)

scala package

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

如何远程访问monit http

我已经尝试了几个小时来配置monit,以便可以从Web浏览器从http://:2812远程访问它,但是它总是超时。我的Nexus在http :: 8081的同一实例上运行,因此我知道基本的连接方式有效:我的monitrc包含

set httpd port 2812
#     use address localhost  # only accept connection from localhost
     allow localhost        # allow localhost to connect to the server and
     allow admin:monit      # require user 'admin' with password 'monit'
     allow 50.67.165.130    # remote host
Run Code Online (Sandbox Code Playgroud)

我试图从哪里连接远程主机。还有其他一些特殊的魔术可以远程访问monit httpd吗?

奇怪的是,这必须如此艰巨。

monit

3
推荐指数
2
解决办法
2846
查看次数

JVM 在哪里持有我的文件锁?

我正在处理 java.nio.file.AccessDeniedException 问题。

我有一个 Scala 程序,如果我这样做:

java.nio.file.Files.delete(FileSystems.getDefault().getPath("""D:\Users\Eric\Google Drive (New)\Music\Downloaded\Foreigner [Discography HQ]\1977 - Foreigner\03 - Starrider.mp3""")) 
Run Code Online (Sandbox Code Playgroud)

一切正常。我有一些代码

def delete(path : Path) {
  try {
    println("deleting " + path)
    java.nio.file.Files.delete(path)
  } catch {
    case exception: Exception => System.err.println(exception)
  }
}

val google1 = FileSystems.getDefault().getPath("""D:\Users\Eric\Google Drive\Music\Downloaded\Foreigner [Discography HQ]""")
val google2 = FileSystems.getDefault().getPath("""D:\Users\Eric\Google Drive (New)\Music\Downloaded\Foreigner [Discography HQ]""")

val duplicates = TraversablePaths(List(google1, google2)).duplicateFilesList

println("deleting duplicate files")
duplicates.foreach(_.filter(!_.startsWith(google1)).foreach(delete))
Run Code Online (Sandbox Code Playgroud)

但是当我尝试删除同一个文件时,我得到

java.nio.file.AccessDeniedException: D:\Users\Eric\Google Drive (New)\Music\Downloaded\Foreigner [Discography HQ]\1977 - Foreigner\03 - Starrider.mp3
Run Code Online (Sandbox Code Playgroud)

我能说的最好的是 JVM 要么锁定了文件,要么锁定了文件所在的目录,但我不知道在哪里。检查文件是否相同的代码看起来像

def identical(file1 : Path, …
Run Code Online (Sandbox Code Playgroud)

java jvm scala filelock

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

阿卡演员故意封锁

我知道Akka演员不应该阻止以保持对消息的反应,但是如何构建我的服务,我想要监视一个无限期运行的进程?

例如,我们使用的是Amazon Kinesis Connector库.您创建一个具有给定配置的连接器,该连接器继承自Runnable,然后调用Run()方法.连接器只是无限期地运行,从Kinesis中提取数据,并将其写入Amazon S3.实际上,如果runnable返回,那么这是一个错误,需要重新启动.

方法(1)将简单地为每个运行的Kinesis Connector创建一个子actor,如果Run()方法返回,则抛出异常,Supervising Actor会注意到异常并重新启动子actor.每个线程每个子actor的一个连接器.

方法(2)将用于子actor将Kinesis Connector包装在Future中,如果将来返回,则actor将在另一个Future中重新启动Connector.可以想象,单个actor可以管理多个连接器,但这是否意味着每个Future都在一个单独的线程中执行?

哪种方法最符合Akka的理念,还是人们推荐其他方法?一般情况下,我想捕获任何连接器的任何问题,并重新启动它.总共不会有超过六打连接器并行运行.

akka akka-supervision

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

动态加载一个Actor,如果它在那里

我有以下代码

lazy val restEndpoint = context.actorOf(Props[RestEndpoint], "RestEndpoint")
Run Code Online (Sandbox Code Playgroud)

但是,我想动态加载actor,如果它存在的原因有以下几点:

  1. 它可能不在类路径上,所以我不得不问类加载器它是否在那里.
  2. 即使它在类路径上,我也可能不想因配置原​​因而加载它.
  3. RestEndpoint位于不同的JAR文件中,该文件已经依赖于此JAR文件,因此我不能拥有循环依赖项.

是否有一些'简单'的方式来反思这样做?请不要指出Scala中有关反射的文档,因为那里没有什么容易的.如果有Scala Reflection for Dummies讨论,我会很感激.

一个工作的例子将不胜感激.

scala akka scala-reflect

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