В нашей системе у нас есть механизм плагинов, позволяющий нам создавать неизвестные классы во время выполнения.
Имея каталог или банку в пути к классам, система способна исследовать содержащиеся в ней классы, и, если класс реализует определенный интерфейс, его можно создать и использовать в качестве плагина.
Все упаковано в банки и работает хорошо и хорошо. Однако при попытке связать его как приложение веб-запуска этот механизм, похоже, выходит из строя.
В частности, кажется, что открытие классов больше не работает:
public static Collection<String> getAllClassFiles()
{
Collection<String> all_files = new ArrayList<String>();
String pathSep = System.getProperty("path.separator");
String classpath = System.getProperty("java.class.path");
for (String path : classpath.split(pathSep))
{
File filepath = new File(path);
if (filepath.isDirectory())
{
all_files.addAll(dirContent(filepath));
}
else if (path.endsWith(".jar"))
{
JarFile jar;
try {
jar = new JarFile(filepath);
}
catch (IOException e) {
Log.warning("WARNING: " + filepath + " could not be opened!");
continue;
}
for (Enumeration<JarEntry> entries = jar.entries(); entries
.hasMoreElements();)
{
JarEntry entry = entries.nextElement();
if (entry.getName().endsWith(".class"))
all_files.add(entry.getName());
}
}
else if (path.endsWith(".class")) {
all_files.add(path);
}
else {
Log.warning("Warning: corrupt classpath entry: " + path);
}
}
return all_files;
}
Итак ... это работает при вызове системы напрямую с использованием jar-файлов ... но больше не с webstart, несмотря на то, что все jar-файлы подписаны и включены.
Есть идеи, как сохранить работу с веб-стартом?