小编gre*_*ill的帖子

使用带注释的方法时使java编译器发出警告(如@deprecated)

假设我定义了一个名为的自定义注释@Unsafe.

我想提供一个注释处理器,它将检测注释方法的引用@Unsafe并打印警告.

例如,鉴于此代码......

public class Foo {
  @Unsafe
  public void doSomething() { ... }
}

public class Bar {
  public static void main(String[] args) {
    new Foo().doSomething();
  }
}
Run Code Online (Sandbox Code Playgroud)

...我希望编译器打印如下:

WARN > Bar.java, line 3 : Call to Unsafe API - Foo.doSomething()
Run Code Online (Sandbox Code Playgroud)

它在精神上非常相似@Deprecated,但我的注释是在传达不同的东西,所以我不能@Deprecated直接使用.有没有办法用注释处理器实现这一目标?注释处理器API似乎更关注应用注释的实体(Foo.java在我的示例中),而不是引用注释成员的实体.

此问题提供了一种使用ASM作为单独构建步骤实现它的技术.但我想知道我是否可以通过javac和注释处理以更自然的方式做到这一点?

java compiler-construction annotations deprecated

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

在失控的GroovyShell服务器线程上调用Thread.stop是否风险太大?

我想在我们的应用程序中添加groovy-shell-server.我们最近遇到了几个生产问题,内部API的调用可以加快诊断速度,甚至可以提供短期修复.Groovy-shell-server提供了一种实现这一目标的好方法.

但实际上在生产中使用它会带来潜在的复杂性.让我们说,尽管经过仔细的同行评审,我们还是会执行一个固定CPU的脚本,或者陷入无限循环.我需要一些方法来杀死那个线程,发音!所以我在考虑增强groovy-shell-server以支持正在运行的Groovy客户端线程的可选硬件停止().

我知道Thread.stop()本质上是不安全的 ; 之前在StackOverflow上讨论过它.我的问题是,您认为这种情况下的好处可能超过风险吗?使用Thread.stop()作为一种失控的GroovyShell服务器线程的"紧急制动"是一种实用的选择吗?或者将对象置于不一致状态的可能性太高了?

(或者,如果某人有更好的方式来提供对正在运行的java应用程序的编程,可中断访问,我会全力以赴.)

java groovy multithreading

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

什么版本的 ffmpeg 捆绑在电子内部?

适用于 Windows 的预构建电子二进制文件包括文件ffmpeg.dll. 如何确定实际编译了底层 ffmpeg 库的哪个版本以生成此 dll?我需要这些信息来通过 ffmpeg 了解给定版本的电子中可能存在哪些已知漏洞(CVE 等)。

据我了解,当我下载我的依赖项(我正在使用)时,ffmpeg dll 本身是从https://github.com/electron/nightlies/releases/获取的electron-prebuilt-compile。但是我没有清楚地了解该二进制文件的来源是什么。我认为它可能来自https://chromium.googlesource.com/chromium/third_party/ffmpeg/但是我不清楚那个 repo 与原始 ffmpeg repo 的关系(例如,从 ffmpeg 中合并修复的频率回购到铬第三方回购等)

我尝试按照 cody 的建议搜索 dll 的内容,但没有运气:

$ strings ffmpeg.dll  | grep -i ffmp
FFmpeg video codec #1
Huffyuv FFmpeg variant
Not yet implemented in FFmpeg, patches welcome
C:\projects\libchromiumcontent\src\out-x64\static_library\ffmpeg.dll.pdb
ffmpeg.dll


$ strings ffmpeg.dll  | grep -i version
H.263 / H.263-1996, H.263+ / H.263-1998 / H.263 version 2
MPEG-4 part 2 Microsoft variant …
Run Code Online (Sandbox Code Playgroud)

ffmpeg electron

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