作者:itsima | 来源:互联网 | 2023-02-10 12:48
用这样的导入编写Java程序对我来说是否安全:
import jdk.nashorn.api.scripting.NashornScriptEngineFactory;
import jdk.nashorn.api.scripting.ClassFilter;
注意:
在我的示例中,我导入Nashorn,但它可以是任何其他jdk包.
注意:我知道从java.*,javax.*导入是安全/正确的,并且从sun导入是不安全/不支持的.*
我在这里看到一篇好文章:http://www.oracle.com/technetwork/java/faq-sun-packages-142232.html
我在Java官方文档中找不到任何方式告诉我这种或那种方式
谢谢
1> Christoffer ..:
您应该javax.script
按照https://docs.oracle.com/javase/8/docs/jdk/api/nashorn/jdk/nashorn/api/scripting/package-summary.html上的说明使用它们.
包jdk.nashorn.api.scripting描述
这个包提供了javax.script
集成,这是使用Nashorn的首选方式.您通常会这样做以获取Nashorn脚本引擎的实例:
import javax.script.*;
...
ScriptEngine nashornEngine = new ScriptEngineManager().getEngineByName("Nashorn");
但要回答你的问题,我会说"可能不是".唯一的官方担保的支持包java.*
,javax.*
和org.*
.
由于这些是唯一受支持的软件包,因此不支持所有其他软件包.
sun.*
由于Oracle现在拥有Java,因此不会命名任何新的不受支持的包.
jdk.*
由于sun.*
不再可用,因此可能有人选择了新的不受支持的包前缀.
也就是说,他们不太可能很快将其删除,除非他们决定将其替换为另一个Javascript引擎,就像他们之前已经做过的那样.
另一个潜在的问题是您的程序不会在另一个不包含Nashorn的JDK上运行.