2017-12-12 23 views
0

Javaアプリケーションを実行するためにAntを使用しています。他のライブラリを使用しているmainSubscriberクラスにあります。そこで私はController.Subscriberを実行したかったのです。しかし、私は、以下のバグを取得:Antファイルがクラスファイル経由でJavaアプリケーションを実行できない

<project default="run"> 
    <target name="run"> 
     <java classname="Controller.Subscriber" fork="true"> 
      <classpath> 
       <pathelement path="target/classes"/> 
      </classpath> 
     </java> 
    </target> 
</project> 

加入者クラスへのパス:ターゲット/クラス/コントローラ/ Subscriber.class

何午前

[java] Error: A JNI error has occurred, please check your installation and try again 
[java] Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/paho/client/mqttv3/MqttCallback 
[java]  at java.lang.Class.getDeclaredMethods0(Native Method) 
[java]  at java.lang.Class.privateGetDeclaredMethods(Class.java:2701) 
[java]  at java.lang.Class.privateGetMethodRecursive(Class.java:3048) 
[java]  at java.lang.Class.getMethod0(Class.java:3018) 
[java]  at java.lang.Class.getMethod(Class.java:1784) 
[java]  at sun.launcher.LauncherHelper.validateMainClass(LauncherHelper.java:544) 
[java]  at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:526) 
[java] Caused by: java.lang.ClassNotFoundException: org.eclipse.paho.client.mqttv3.MqttCallback 
[java]  at java.net.URLClassLoader.findClass(URLClassLoader.java:381) 
[java]  at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
[java]  at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335) 
[java]  at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
[java]  ... 7 more 
[java] Java Result: 1 

私のAntファイルには、以下のとおりです。私は間違っている? Javaプログラムを実行するために、まずクラスファイルからjarファイルを作成する必要がありますか、クラスファイルを実行できますか?または、私のjavaコマンドのパラメータが足りないのですか?

は、私はまた、明示的にクラスパスを与えることによって、次のAntファイルを試してみました:

<project default="run"> 
     <target name="run"> 
      <java classname="Controller.Subscriber" fork="true" classpath="classpath"> 
       <classpath> 
        <pathelement path="target/classes"/> 
       </classpath> 
      </java> 
     </target> 
     <path id="classpath"> 
      <fileset dir="target"> 
        <include name="*.jar"/> 
      </fileset> 
     </target> 
    </project> 

しかし、私は同じエラーメッセージを取得しています。

答えて

0

私は問題の解決策を見つけました:classpathの代わりにclasspathrefを使用する必要があります。何らかの理由でclasspath="classpath"がid "classpath"を読み取らない。しかしclasspathrefが問題を解決しました。

関連する問題