Приложение Java, составленное Java 8, имеет код, прикрепленный ниже. Это работает хорошо, если время выполнения JRE - Java 8, но это не загружает Serialfilter, когда используется во время выполнения JRE 17.
Java 9 имеет некоторые изменения в логике загрузки последовательных файлов, и у нас есть возможность установить Serialfilter, используя:: ObjectInputFilter.Config.SetSerialFilter (objectInputFilter.config.createFilter (фильтр)); < /p>
Но это не будет составлено из Java 8, но нам нужно придерживаться этой версии для компиляции .. каковы способы заставить JDK.SerialFilter работать во всех Java> = 8. private void loadJavaSerializationFilter() {
final String[] systemProps = {"jdk.serialFilter"};
File file = new File(Home + "/serialfilter.txt");
if(file.exists() && !file.isDirectory()) {
try
{
byte[] fileBytes = Files.readAllBytes(file.toPath());
String filter = new String(fileBytes);
for(String systemProp: systemProps) {
String existingValue = System.getProperty(systemProp);
if(existingValue == null || existingValue.trim().isEmpty()) {
System.setProperty(systemProp, filter);
}
}
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/795 ... runtime-ve