问题标签 [jdk-internal-api]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3039 浏览

java - 我应该担心使用 AWTUtilities.setWindowShape() 吗?

AWTUtilities在我的应用程序中使用该类来创建自定义窗口形状。据我所知,没有其他方法可以做到这一点。这是一个要求。

javadoc 生成给了我这个错误:

警告:com.sun.awt.AWTUtilities 是 Sun 专有 API,可能会在未来的版本中删除

这到底是什么意思?我可以使用它,但它可能会停止与任何版本一起工作?那为什么要放进去?更重要的是,这里真正的问题是,如果 Sun 把它拿出来,他们是否会用另一种方式来代替它来做同样的事情?这就是警告的目的吗?

我想我可以在调用代码之前检查 AWTUtilities 类的存在。但是,如果我不需要这样做,那就太令人讨厌了。

有没有人有类似课程的经验?他们最终是否被 API 接受并且警告被删除或替换为做同样事情的另一种方法?我需要担心这个吗?

仅供参考,我读过这个:

如何分发 AWTUtilities

0 投票
5 回答
14378 浏览

java - 构建有关使用 Sun 专有 API 的警告

我正在尝试清理我的构建环境,并发现了一些关于使用 Sun 专有 API 的警告。

和...

任何人都可以建议这些 API 的一个很好的替代方案吗?或者可以用官方的 Java API 替换它们吗?我意识到这些只是警告,但这是我计划解决的问题。

0 投票
2 回答
4505 浏览

java - jdk7:sun.font.fontManager 替换/如何从 fontname 获取文件名信息

使用 Oracle(Sun) JDK6 并尝试迁移到 Oracle JDK7

我正在使用sun.awt.GraphicsEnvironment查找所有系统字体,以便使用它们来更改我的 pdf 文件中使用的 pdf 字体。这是我正在使用的确切代码:

之后,我需要在系统上获取确切的字体文件路径,所以我使用:

现在的问题是,sun.font.FontManager它不再是一个类,并且已经被转换为一个接口。我在网上搜索并提出了一些我不满意的解决方案,我正在寻找其他想法来帮助解决我的问题。

我找到的解决方案:

  1. 在 Java 6 而不是 Java 7 上部署我的项目(不推荐,因为我在 Java 7 中使用了一些新功能)。
  2. 我在网上找到了 FontManager 类的代码,但是使用它需要包含很多其他类/接口,而且这个过程看起来很笨拙且耗时。如果我被允许使用该代码,我也不是,因为它是 Sun 公司的专有。

我需要的是: *一种在系统上找到确切字体文件路径的方法*. 欢迎所有想法。

0 投票
3 回答
1753 浏览

java - 我应该用什么替换 sun.awt.shell.ShellFolder 这样我就不会收到编译警告?

我有一种方法sun.awt.shell.ShellFolder.get("fileChooserComboBoxFolders");,我想使用它来替换(或尽可能抑制警告)。我可以用不是 Sun 专有的东西来替换它,这样它就不会对某些可能的移除发出警告吗?

--

更新:不确定是否需要代码。它在遗留代码中,我被要求删除所有编译警告。ShellFolder 的一个特殊之处如下:

--

关于为什么需要它的更新 #2:JFileChooser 仍然有点错误。

0 投票
1 回答
5905 浏览

java - 导入 AWTUtilities 时出错

如果启用了这些,我会尝试使用 AWTUtilities,所以我使用这些方法

所以当我尝试使用 netBeans 编译时它会显示错误

但是如果我使用这个导入,问题就解决了

但是当我在没有 AWTUtilities 的 PC 中运行 jar 时,它会在导入时引发错误

我不能在导入中放入 try catch(),那我该怎么办?

0 投票
0 回答
243 浏览

android - Android 5+ 如何更改首选网络

嗨,我已经阅读了很多关于这个论点的内容,但我认为如何在 android 5+ 中更改首选网络存在很多错误。
首先,我的应用程序可以使用root,但作为必要条件,它必须留在 play store 中

为此,我认为有三种方法:

  1. 有根
  2. 使用系统应用程序证书签署您的应用程序
  3. 使用运营商许可签署您的应用

对于第二种方法,存在一些大问题:

  • 您不能在 Play 商店中发布使用系统证书签名的应用
  • 某些设备(例如华为)不能安装具有系统证书的应用程序

对于第三种方法,问题是沃达丰不是我的朋友:)

那么,让我们谈谈第一种方法:

在 Play 商店里面有很多应用程序可以通过 root 权限更改首选网络,例如 Automate:https: //play.google.com/store/apps/details? id=com.llamalab.automate.ext.superuser &hl =它
我认为所有应用程序调用都在根会话中通过内部API反射这个函数:https ://github.com/android/platform_frameworks_base/blob/nougat-mr1-release/telephony/java/com/android/internal/telephony/ ITelephony.aidl#L753
所以我尝试用这段代码来做这件事......但冻结我的应用程序:

关于这个问题的任何解决方案?

0 投票
1 回答
78 浏览

java - 为什么在传播之前必须复制反射成员?

如果您查看获取字段、方法或构造函数的反射对象的源代码,则会返回它们的副本。让我们以获取字段为例:

而在 jdk.internal.reflect.ReflectionFactory

而在 java.lang.reflect.Field

而在java.lang.reflect.ReflectAccess(jdk的实现

最后回到 java.lang.reflect.Field

但为什么?我们不能只是简单地访问根 Field 对象并弄乱它吗?

0 投票
0 回答
148 浏览

java - 如何在编译时生成导入?

我目前正在使用 的实现来执行此com.sun.source.util.Plugin操作,该方法具有将以下表达式添加到导入部分的方法import java.util.List;

名称- com.sun.tools.javac.util.Names& treeMaker的实例 - 的实例com.sun.tools.javac.tree.TreeMaker

我将我的插件作为一个依赖项添加到一个项目中A.javamvn package完成后,A.class丢失了,我只有一个空target目录。

看来我的解决方案是错误的。所以问题是:如何import <something>A.java编译时添加?

PS 我一直在寻找在LombokMapStructSpoon和其他不太知名的项目中添加导入的方法,但我没有找到类似的东西。