Важная вещь состоит в том, что значок, Вы хотите быть отображенными как значок приложения (в строке заголовка и в панели задач) должен быть значком FIRST в файле
сценария ресурса, файл находится в res папке и назван (applicationName) .rc
/////////////////////////////////////////////////////////////////////////////
//
// Icon
//
// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.
(icon ID ) ICON "res\\filename.ico"
См. Список зависимостей , которые требуются commons-vfs для работы sftp. Как только JSch находится в пути к классам, ваше исключение больше не происходит. Взгляните на Apache Wiki , чтобы увидеть примеры подключения через sftp.
Я никогда раньше не использовал VFS, но похоже, что вам нужно (как минимум) зарегистрировать SFTP FileProvider
. Похоже, для этого требуется что-то вроде:
DefaultFileSystemManager fsm = ... /* Create and configure your FSM. */
fsm.addProvider("sftp", new SftpFileProvider());
Вероятно, есть способ сделать то же самое с помощью синтаксиса файла конфигурации .
Взгляните на это описание о том, как реализовать новый обработчик протокола URL-адресов (документ описывает тип URL-адреса LDAP, но вы должны быть в состоянии обобщить с этого на вашу схему sftp
).
Из документа:
Как видите, единственная разница между двумя примерами заключается в том, что мы использовали URL-адрес LDAP во втором кейс. Однако для запуска LDAP образец вам сначала нужно будет зарегистрироваться обработчик протокола LDAP IAIK-JCE чтобы сообщить структуре URL-адресов java.net где искать поддержку LDAP классы IAIK-JCE:
System.getProperties (). put ("java.protocol.handler.pkgs", "iaik.x509.net");
После того, как зарегистрировал протокол IAIK LDAP обработчик, IAIK-JCE LdapURLConnection объект возвращается при вызове url.openConnection для URL-адреса LDAP.
(выделено мной)
I use jsch to handle sftp and ssh. It won't help you preventing an exception from java.net.URL, but it will help you doing sftp stuff.
Depending on how your code is structured, you could remove the s before you give the string to the URL parsing method, set a flag, and if it validates, check that flag and put it back if it's set. It's ugly, but it'll provide a workaround.