2016-04-19 1 views
0

Webページ上のリンクが見つかったときに音楽を再生するコードを記述しました。Media Playerを使用しようとしているときのアプリケーションコンストラクタでの例外

import java.io.File; 
import java.io.IOException; 
import java.util.logging.Level; 
import java.util.logging.Logger; 
import javafx.application.Application; 
import org.jsoup.Jsoup; 
import org.jsoup.nodes.Document; 
import org.jsoup.nodes.Element; 
import org.jsoup.select.Elements; 
import javafx.scene.media.Media; 
import javafx.scene.media.MediaPlayer; 
import javax.sound.sampled.AudioInputStream; 
import javax.sound.sampled.AudioSystem; 
import javax.sound.sampled.Clip; 
import javafx.application.*; 
// * @author Archit 

public abstract class WebCrawl extends Application{ 

    public static void main(String[] args) throws IOException { 
     Application.launch(args); 
     int a=0; 
     try { 
      Document doc = Jsoup.connect("https://in.bookmyshow.com/ranchi").get(); 
      org.jsoup.select.Elements links = doc.select("a"); 
      for (Element e: links) { 
       if ((e.attr("abs:href").equals("https://in.bookmyshow.com/ranchi/movies/fan/ET00025074"))) { 
        try { 
         File f = new File("/Users/Archit/Documents/Music/campbell.wav"); 
         Media hit = new Media(f.toURI().toString()); 
         MediaPlayer mediaPlayer = new MediaPlayer(hit); 
         mediaPlayer.play(); 
        } catch(Exception ex) { 
         System.out.println("Exception"); 
        } 
       } 
      } 
     } 

私は取得していますエラーはこれです:

Exception in Application constructor java.lang.reflect.InvocationTargetException 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at  sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:497) 
    at com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:389) 
    at com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:328) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:497) 
    at sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:767) 
Caused by: java.lang.RuntimeException: Unable to construct Application instance: class webcrawl.WebCrawl 
    at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:907) 
    at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$155(LauncherImpl.java:182) 
    at java.lang.Thread.run(Thread.java:745) 
Caused by: java.lang.InstantiationException 
    at sun.reflect.InstantiationExceptionConstructorAccessorImpl.newInstance(InstantiationExceptionConstructorAccessorImpl.java:48) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:422) 
    at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$161(LauncherImpl.java:819) 
    at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$175(PlatformImpl.java:326) 
    at com.sun.javafx.application.PlatformImpl.lambda$null$173(PlatformImpl.java:295) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at com.sun.javafx.application.PlatformImpl.lambda$runLater$174(PlatformImpl.java:294) 
    at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95) 
Exception running application webcrawl.WebCrawl 

ウィンドウは、私がアプリケーションを実行するときに開くように思えるが、自動的にクローズされ、このエラーが表示されます。

本当に助けていただければ幸いです。ありがとうございました。

答えて

1

あなたはWebCrawlabstractあるので、そうlaunchが、それができない、WebCrawlインスタンスを作成しようとすると、Application.launch(String[])を使用してWebCrawlクラスからアプリケーションを起動しています。

ところでApplication.launchコールの後にコードを配置すると、Application.launchが終了した後にJavaFXプラットフォームが既に終了しているため、コードを配置できません。

Life-cycle section of the Application javadocでアプリケーションのライフサイクルについて読むことができます。

start以降のコードを呼び出す必要があります。

単純なJavaFXアプリケーションのチュートリアルは、https://docs.oracle.com/javase/8/javafx/get-started-tutorial/hello_world.htm

です。
関連する問題