質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
JAR

JAR(又はJava ARchive)はコンパイルされた複数のJavaバイトコード及び関連ファイルのリソースを一つのファイルに統合したものです。JARファイルはZIPファイルのフォーマットで構築されています。

JavaFX

JavaFXとは、Java仮想マシン上で動作するリッチインターネットアプリケーション (RIA) のGUIライブラリです。Swingとは異なり、FXMLと呼ばれる XMLとCSSを併用してデザインを記述します。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

IntelliJ IDEA

IntelliJ IDEA(インテリジェイ アイディア)は、JetBrains社が開発した、 JavaやScalaなどで利用される統合開発環境です。

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

Q&A

解決済

2回答

19567閲覧

(急募) Java + Selenium JAR 実行ファイルが起動しない IntelliJ IDEA

Clover

総合スコア13

JAR

JAR(又はJava ARchive)はコンパイルされた複数のJavaバイトコード及び関連ファイルのリソースを一つのファイルに統合したものです。JARファイルはZIPファイルのフォーマットで構築されています。

JavaFX

JavaFXとは、Java仮想マシン上で動作するリッチインターネットアプリケーション (RIA) のGUIライブラリです。Swingとは異なり、FXMLと呼ばれる XMLとCSSを併用してデザインを記述します。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

IntelliJ IDEA

IntelliJ IDEA(インテリジェイ アイディア)は、JetBrains社が開発した、 JavaやScalaなどで利用される統合開発環境です。

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

0グッド

0クリップ

投稿2017/05/16 18:39

編集2017/05/17 01:51

開発環境:IntelliJ IDEA
Windows 10 64bit

仕事でJavaを急遽使う事になりました。

簡単なコードを書き、JARファイルの作成を行いまして生成されたものを実行したのですが、クリックしても何も反応が起きません。
実行では問題なく動作します。

プログラムの内容:
ウィンドウを表示し、SeleniumよりGoogle Chromeを起動。プラウザを閉じて本体も終了する。
プロジェクトは、デスクトップのTestAppフォルダです。

プロジェクト

Main.java

Java

1package sample; 2 3import javafx.application.Application; 4import javafx.scene.Scene; 5import javafx.scene.layout.VBox; 6import javafx.stage.Stage; 7 8import org.openqa.selenium.WebDriver; 9 10public class Main extends Application { 11 12 private WebDriver _driver = null; 13 @Override 14 public void start(Stage primaryStage) throws Exception{ 15 VBox root = new VBox(); 16 Scene scene = new Scene( root , 1000, 600 ); 17 primaryStage.setScene( scene ); 18 primaryStage.show(); 19 20 _driver = SelDriverFactory.setupChromeDriver(".\\lib\\chromedriver.exe"); 21 _driver.quit(); 22 23 System.exit(0); 24 } 25

SelDriverFactory.java

Java

1package sample; 2 3import org.openqa.selenium.WebDriver; 4import org.openqa.selenium.chrome.ChromeDriver; 5 6import java.util.concurrent.TimeUnit; 7 8public class SelDriverFactory { 9 public static ChromeDriver setupChromeDriver(String strChromeDriverExePath) { 10 System.setProperty("webdriver.chrome.driver", strChromeDriverExePath); 11 return initDriver(new ChromeDriver()); 12 } 13 14 private static <T extends WebDriver> T initDriver(T driver) { 15 driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS); 16 driver.manage().window().maximize(); 17 return driver; 18 } 19}

Selenium公式サイトよりダウンロードしたものをlibフォルダに入れてプロジェクトのルートに設置しています。
Selenium

プロジェクト構造は以下のように設定しております。

モジュール
モジュール

ライブラリ
ライブラリ

成果物
成果物

また、cmdにて
「cd デスクトップ+TestApp」→「javac Main.java」と実行したところ以下のエラーメッセージが出ました。
org.openqa.selenium
cmd

何度か調べましたが、良く分かりませんでした。
よろしくお願い致します。

追記
下記のコードを削除して実行したところ起動はしました。
ただ、もう一度そのコードを挿入してディレクトリの(".\lib\chromedriver.exe")の部分を\lib\chromedriver.exeやchromedriver.exeにしたところ起動しなくなります。もちろん同ディレクトリにchromedriver.exeを置いています。

Java

1_driver = SelDriverFactory.setupChromeDriver(".\\lib\\chromedriver.exe");

追記

Java

1 try { 2 _driver = SelDriverFactory.setupChromeDriver(".\\lib\\chromedriver.exe"); 3 _driver.quit(); 4 }catch(Throwable e){ 5 e.printStackTrace(); 6 System.out.println(e); 7 System.exit(0); 8 }

上記のcatch部分のSysytem.out.printlnコードを実際はalertに変更し、実行したところエラーが表示されました。
しかし成果物を実行したところ、やはり起動しませんでした。
cmdより「java -jar TestApp.jar」と実行したところ、以下のエラーが出ました。
cmd

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Zuishin

2017/05/17 01:04

私のコメントが消えているのでおかしなことになっていますね。誰かが削除依頼したのか運営の自主的判断か。
Clover

2017/05/17 01:08

そうですね。私は削除依頼を行っていないので、恐らく誰かがされたか運営の自己判断かと思います。
Zuishin

2017/05/17 02:22

それでまたなぜこのやり取りを残すかね。前後も読めばいいのに。
Clover

2017/05/17 02:35

何を前提に言われているのか断定できる文言がなく意図が完全に読み取れませんが、削除云々に関して言われているのならば私に言われても分かりません。
Zuishin

2017/05/17 02:35

運営に言っています。
guest

回答2

0

ベストアンサー

「javac Main.java」と実行したところ

classpath がなければ当然外部ライブラリを読み込めないのでコンパイルが通りません。一つずつjavacするのではなくgradleなどでまとめてやリましょう。gradleを使えばlibのインストール先など考えずに済みます。

ディレクトリの(".\lib\chromedriver.exe")の部分を\lib\chromedriver.exeやchromedriver.exeにしたところ起動しなくなります

エラーが書かれていないので詳細はわかりませんが、パスが違うからだと推測します。
.\\lib\\chromedriver.exe\\lib\\chromedriver.exeは相対パスと絶対パスで全く違うものです。chromedriver.exeのパスを正しく指定しましょう。

投稿2017/05/16 20:43

TakeoAsai

総合スコア880

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Clover

2017/05/17 00:43

ご回答頂き誠にありがとうございます。 朝までと急かしておきながら(取引先と急遽アポがあり当初と予定がずれました。)、色々と遅くなってしまい申し訳ございません。 gradleに関しては今から自身で調べてみます。 後者に関してはその可能性が高いと思いますので、違った形で何度か再度実践してみます。 進展ありましたら追記します。
Clover

2017/05/17 00:58 編集

javaを始めて数時間目につきclasspathという概念を把握していないので見当違いの事を言っていたら申し訳ないのですが、コンパイルは質問の時点で通っています。 >>下記のコードを削除して実行したところ起動はしました。 質問の最後にある上記少し表現を間違えまして、 private WebDriver _driver = null; _driver.quit(); というコードを残した状態で成果物を生成したところウィンドウは表示されたので、外部ライブラリの問題ではないような気がします。 どちらにせよ、一度しっかり調べてみます( _ _ )
guest

0

プロジェクト構造→成果物→Extraced Directoryよりjarを直接追加したところ正しく動作しました。

gradleに関しては調べたのですが知識不足により今一分からなかったのですが、とても便利そうである事は分かったので本などを買って勉強してみようと思います。

ありがとうございました。

投稿2017/05/17 02:50

Clover

総合スコア13

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問