问题标签 [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.
java - 我应该担心使用 AWTUtilities.setWindowShape() 吗?
我AWTUtilities
在我的应用程序中使用该类来创建自定义窗口形状。据我所知,没有其他方法可以做到这一点。这是一个要求。
javadoc 生成给了我这个错误:
警告:com.sun.awt.AWTUtilities 是 Sun 专有 API,可能会在未来的版本中删除
这到底是什么意思?我可以使用它,但它可能会停止与任何版本一起工作?那为什么要放进去?更重要的是,这里真正的问题是,如果 Sun 把它拿出来,他们是否会用另一种方式来代替它来做同样的事情?这就是警告的目的吗?
我想我可以在调用代码之前检查 AWTUtilities 类的存在。但是,如果我不需要这样做,那就太令人讨厌了。
有没有人有类似课程的经验?他们最终是否被 API 接受并且警告被删除或替换为做同样事情的另一种方法?我需要担心这个吗?
仅供参考,我读过这个:
java - 构建有关使用 Sun 专有 API 的警告
我正在尝试清理我的构建环境,并发现了一些关于使用 Sun 专有 API 的警告。
和...
任何人都可以建议这些 API 的一个很好的替代方案吗?或者可以用官方的 Java API 替换它们吗?我意识到这些只是警告,但这是我计划解决的问题。
java - jdk7:sun.font.fontManager 替换/如何从 fontname 获取文件名信息
使用 Oracle(Sun) JDK6 并尝试迁移到 Oracle JDK7
我正在使用sun.awt.GraphicsEnvironment
查找所有系统字体,以便使用它们来更改我的 pdf 文件中使用的 pdf 字体。这是我正在使用的确切代码:
之后,我需要在系统上获取确切的字体文件路径,所以我使用:
现在的问题是,sun.font.FontManager
它不再是一个类,并且已经被转换为一个接口。我在网上搜索并提出了一些我不满意的解决方案,我正在寻找其他想法来帮助解决我的问题。
我找到的解决方案:
- 在 Java 6 而不是 Java 7 上部署我的项目(不推荐,因为我在 Java 7 中使用了一些新功能)。
- 我在网上找到了 FontManager 类的代码,但是使用它需要包含很多其他类/接口,而且这个过程看起来很笨拙且耗时。如果我被允许使用该代码,我也不是,因为它是 Sun 公司的专有。
我需要的是: *一种在系统上找到确切字体文件路径的方法*. 欢迎所有想法。
java - 我应该用什么替换 sun.awt.shell.ShellFolder 这样我就不会收到编译警告?
我有一种方法sun.awt.shell.ShellFolder.get("fileChooserComboBoxFolders");
,我想使用它来替换(或尽可能抑制警告)。我可以用不是 Sun 专有的东西来替换它,这样它就不会对某些可能的移除发出警告吗?
--
更新:不确定是否需要代码。它在遗留代码中,我被要求删除所有编译警告。ShellFolder 的一个特殊之处如下:
--
关于为什么需要它的更新 #2:JFileChooser 仍然有点错误。
java - 导入 AWTUtilities 时出错
如果启用了这些,我会尝试使用 AWTUtilities,所以我使用这些方法
所以当我尝试使用 netBeans 编译时它会显示错误
但是如果我使用这个导入,问题就解决了
但是当我在没有 AWTUtilities 的 PC 中运行 jar 时,它会在导入时引发错误
我不能在导入中放入 try catch(),那我该怎么办?
android - Android 5+ 如何更改首选网络
嗨,我已经阅读了很多关于这个论点的内容,但我认为如何在 android 5+ 中更改首选网络存在很多错误。
首先,我的应用程序可以使用root,但作为必要条件,它必须留在 play store 中。
为此,我认为有三种方法:
- 有根
- 使用系统应用程序证书签署您的应用程序
- 使用运营商许可签署您的应用
对于第二种方法,存在一些大问题:
- 您不能在 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
所以我尝试用这段代码来做这件事......但冻结我的应用程序:
关于这个问题的任何解决方案?
java - 为什么在传播之前必须复制反射成员?
如果您查看获取字段、方法或构造函数的反射对象的源代码,则会返回它们的副本。让我们以获取字段为例:
和
和
而在 jdk.internal.reflect.ReflectionFactory
而在 java.lang.reflect.Field
而在java.lang.reflect.ReflectAccess(jdk的实现
最后回到 java.lang.reflect.Field
但为什么?我们不能只是简单地访问根 Field 对象并弄乱它吗?
java - 如何在编译时生成导入?
我目前正在使用 的实现来执行此com.sun.source.util.Plugin
操作,该方法具有将以下表达式添加到导入部分的方法import java.util.List;
:
名称- com.sun.tools.javac.util.Names
& treeMaker的实例 - 的实例com.sun.tools.javac.tree.TreeMaker
我将我的插件作为一个依赖项添加到一个项目中A.java
,mvn package
完成后,A.class
丢失了,我只有一个空target
目录。
看来我的解决方案是错误的。所以问题是:如何import <something>
在A.java
编译时添加?
PS 我一直在寻找在Lombok、MapStruct、Spoon和其他不太知名的项目中添加导入的方法,但我没有找到类似的东西。