Eu estou construindo um Plugin para o Eclipse, sendo que esse plugin apresenta a seguinte funcionalidade:
O usuário deve inserir no Windows - Preference - NomePlugin, as classpath necessárias para o funcionamento desse plugin, que são para o funcionamento do banco de dados. Nesse caso seriam msbase.jar, mssqlserver.jar e msutil.jar.
Esses dados são passados na linha de comando quando esse plugin é executado…
Eu baixei o código fonte do plugin do Tomcat e segui a linha dele…
Eu verifiquei e vi que a linha de comando que está sendo executada é a seguinte:
Foi feita a classe que faz a conexão ao banco de dados, e ela está correta, pois fiz testes sem utilizar o plugin… O problema que estou tendo é que provavelmente ele não está encontrando as variáveis que estou mandando no classpath…
colocar um jar no classpath do eclipse (internamente como plugin) não é como vc faz em java tradicional…
ou vc faz no plugin.xml, ou faz com este exemplo:
if (loader == null) {
urls[0] = new File(driverFile).toURL();
loader = new URLClassLoader(urls);
driverCache.put(driverFile, loader);
}
note que o código acima está colocando a String driverFile no classpath, entao se esta string contiver c:/seu_driver.jdbc.jar este jar será carregado como se vc estivesse colocando ele no classpath…
ai quando vc fizer o loader.loadClass(“JDBCDriver”)… o driver do seu banco vai estar no classpath…
se vc precisa de alguns jars extra no classpath do seu plugin coloque no plugin.xml…
no meu exemplo o String driverFile é a localização de seu driver jdbc, precisa ter o caminho completo, c:/…/driver.jar, mas o driver é um só, não tem que separar por “;”… somente o driver … isto pq quando vc faz
Class driverClass = loader.loadClass("com.Micro$oft.jdbc.sqlserver.SQLServerDriver");
o driver precisa estar carregado… coloque somente o driver, nao estes outros jars… e o caminho completo.
O restante vc coloca lá no plugin.xml em required-plugins.
eu não conheço estes jars ai, mas se vc precisar mesmo de todos para se conectar, tente usar o array de URL, veja que é passado um URL[] para o construtor de URLClassLoader, assim crie um array com cada jar que vc precisar…
nunca fiz isso, mas deve funcionar
URL urls[] = new URL[3];
urls[0] = ...
urls[1] = ...
urls[2] = ...
loader = new URLClassLoader(urls);
carregar um jar? puxa, ou eu nao estou entendo vc ou vc nao entendeu que eu lhe disse
veja, eu tenho um plugin onde o plugin.xml está assim:
[code]
[/code]
vc viu em “library”, em coloquei jdom.jar,velocity-dep-1.3.jar, etc…
isto pq no meu plugin eu vou usar o Jdom e velocity , entao ísto coloca estes jars no classpath do plugin… se vc nao fizer isso vai dar ClassNotFoundException…
outra configuração que vc pode fazer é tornar um plugin inteiro como required para seu plugin, neste caso eu coloquei o “draw2d”, entao eu posso usar qualquer classe deste plugin, deste que este esteja instalado…
desculpe se nao consegui ajudar, mas eu já lhe disse tudo que eu sabia e com certeza tudo que vc precisava saber
lá no plugin.xml, quando vc define uma library, o jar precisa estar no mesmo diretório do plugin.xml.