Erro em applet com biblioteca dll

5 respostas
DirceuSobrinho

Oi...

meu caso é o seguinte, eu crio um objeto de uma biblioteca dll em um applet... sendo que quando executo uma funcao desse objeto criado da o seguinte erro:

Exception in thread "AWT-EventQueue-1" java.lang.UnsatisfiedLinkError: no QuadTTS in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1682)
at java.lang.Runtime.loadLibrary0(Runtime.java:822)
at java.lang.System.loadLibrary(System.java:992)
at QuadmoreTTS.<clinit>(QuadmoreTTS.java:5)
at appletSAPI$ButtonHandler.actionPerformed(appletSAPI.java:30)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1849)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2169)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:234)
at java.awt.Component.processMouseEvent(Component.java:5488)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3093)
at java.awt.Component.processEvent(Component.java:5253)
at java.awt.Container.processEvent(Container.java:1966)
at java.awt.Component.dispatchEventImpl(Component.java:3955)
at java.awt.Container.dispatchEventImpl(Container.java:2024)
at java.awt.Component.dispatchEvent(Component.java:3803)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
at java.awt.Container.dispatchEventImpl(Container.java:2010)
at java.awt.Component.dispatchEvent(Component.java:3803)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)

e o meu codigo é o seguinte:

//Java core packages
import java.awt.*;
import java.awt.event.*;

//Java extension packages
import javax.swing.*;

public class appletSAPI extends JApplet &#123;
	
private static final long serialVersionUID = 1L;
private JButton button;
	
public void init&#40;&#41;&#123;
	
	Container container = getContentPane&#40;&#41;;
	container.setLayout&#40; new FlowLayout&#40;&#41; &#41;;
	
	ButtonHandler handler = new ButtonHandler&#40;&#41;;
	
	button = new JButton&#40; &quot;Play&quot; &#41;;
	button.addActionListener&#40; handler &#41;;
	container.add&#40; button &#41;;
		
&#125;

private class ButtonHandler implements ActionListener &#123;

	   public void actionPerformed&#40; ActionEvent actionEvent &#41;
	   &#123;
		   QuadmoreTTS tts = new QuadmoreTTS&#40;&#41;;
		   tts.setVoiceToken&#40;&quot;Microsoft Mary&quot;&#41;;
		   tts.SpeakDarling&#40;&quot;Hello World&quot;&#41;;
	   &#125;
	&#125;


&#125;

*da biblioteca QuadTTS.ddl, a classe Quadmore e o applet estão na mesma pasta.

vlw, Dirceu

5 Respostas

J

Isso é uma DLL? como assim cria um objeto dela, como você tá fazendo isso? Se for uma DLL você tem que usar JNI.

DirceuSobrinho

eu crio o objeto desta classe:

class QuadmoreTTS &#123; static &#123; System.loadLibrary&#40;&quot;QuadTTS&quot;&#41;; &#125; public static void main&#40;String args&#91;&#93;&#41; &#123; &#125; public native boolean SpeakDarling&#40;String strInput&#41;; public native boolean setVoiceToken&#40;String strVoiceToken&#41;; public native String getVoiceToken&#40;&#41;; &#125;

J

e essa DLL está de acordo com as especificações de JNI?

DirceuSobrinho

Está sim!

J

coloque a dll dentro de System32…

esse erro é porque ele não consegue encontrar a biblioteca…

Criado 26 de agosto de 2005
Ultima resposta 26 de ago. de 2005
Respostas 5
Participantes 2