Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用其他版本的java编译代码_Java - Fatal编程技术网

使用其他版本的java编译代码

使用其他版本的java编译代码,java,Java,我开发了一个需要jdk版本1.6的程序,但我受到jdk1.4的限制。当我尝试使用jdk1.4编译代码时,编译器会给出以下代码的编译错误 symbol : class PrivateKeyEntry location: class java.security.KeyStore KeyStore.PrivateKeyEntry keyEntry =(KeyStore.PrivateKeyEntry)ks.getEntry(""); symbol : class PasswordP

我开发了一个需要jdk版本1.6的程序,但我受到jdk1.4的限制。当我尝试使用jdk1.4编译代码时,编译器会给出以下代码的编译错误

symbol  : class PrivateKeyEntry
location: class java.security.KeyStore
       KeyStore.PrivateKeyEntry keyEntry =(KeyStore.PrivateKeyEntry)ks.getEntry("");

symbol  : class PasswordProtection
location: class java.security.KeyStore
                    new KeyStore.PasswordProtection("shivambp2014".toCharArray()));

我的客户机也使用jdk1.4版本。请指导,如何消除此编译错误,以便正确编译代码。

通常,您必须升级Java或更改代码,以便仅使用所选Java版本中可用的内容

从错误消息中,我猜测需要某种加密。您可能可以使用JDK提供的工具来代替。这取决于您使用的代码

另外,你也可以尝试删除那些没有编译的行,看看哪些行被破坏了,然后用你可以使用的工具重新开始构建必要的特性

从1.4到1.5的更改非常大,可能有太多的代码需要更改


也许你应该说服你的客户更新更新的Java。垃圾收集能力在许多其他方面都有了很大的发展。Java1.4在年已经走到了尽头。

PrivateKeyEntry是在JDK1.5中引入的。所以你不能在1.4中使用它们。但是,您可以在javac命令中使用JDK 1.5编译器和-target jsr14和-source 1.5选项

请发布完整的编译错误。添加了类PrivateKeyEntry。您可能需要重构代码。您好,Drux,您是对的,这个类在jdk1.5和jdk1.5中也可用。我的代码编译并成功运行。我下载了一个具有相同类的jar文件,并将该jar放在类路径中,然后编译了代码,但结果是一样的。考虑到java 1.4多年来没有安全更新,您的第一个行动应该是尝试说服您的客户升级到oracle支持的版本,例如7或8。只要运行时不需要Java 1.5特定代码,这应该可以工作。如果因为PrivateKeyEntry类而失败。文档说PrivateKeyEntry是从1.5添加的,所以这应该可以完成工作是的,我知道。但是JDK1.4不识别源代码级别1.5或更高级别。-target jsr14,相当于1.4选项–除了它允许源代码格式为1.5I know the parameters做什么。但是1.4javac对1.5一无所知。它不允许将源或目标级别设置为1.4。