Eclipse Gluon 画面サイズ〜Gradleの起動が止まる〜

開発作業中にまた遭遇しました。バグです。

Viewクラスを継承してViewを作成しているのですが、画面のサイズを取得したくて以下の様なコードを追加したところGradleの起動が途中で止まってしまう現象に遭遇しました。

this.getParent().getLayoutBounds().getWidth();

クラスの実装は大雑把にこんな感じです。

public class BasicView extends View {
    ・
    ・
    ・
   public String getCSS() {
      double width = this.getParent().getLayoutBounds().getWidth();
      ・
      ・
      ・
   }
}

問題のコードを使用しなかった場合、問題なく起動します。

原因は不明、とりあえず箱のコードを使用しない様にして回避しています。

でわでわ。。。

追記

ちなみに、画面のサイズを取得するのは以下の様なコードで取得できました。

MobileApplication.getInstance().getGlassPane().getWidth()



Eclipse Gluon〜Launching Gradle tasks failed〜

またしても表題の様なエラーが出ました。

事件が起きた状況

作業場所を移動して、近場のスーパー銭湯は休憩所にて端末を立ち上げて作業開始した時(インターネットには未接続)Gradleでアプリを起動したら以下の様にエラーが出ました。

「ん〜何がいけないんだ〜?」と悩んでいたところ、以下の様な周りの声が聞こえました。

「ここってWifi入らないんだよね〜?」

「ん?そーいえば、インターネットに接続していないな、エラーもなんかダウンロードできないとか言ってるし。。。」と気がついたので、環境を移し再度Webに接続後Gradleを実行したところ問題なく起動しました。

結論

インターネット環境のないところでGradleを起動しても動かない。

自分が使用しているものだけかもしれませんが、Mavenでもウェブ上からダウンロードしてくる様なものがあるときは当然動かないでしょう。。。


これにて一件落着。。。

でわでわ。。。







Eclipse Gluon 〜Task ‘run’ not found in root project〜

表題の様なエラーが出てアプリケーションが動かなくなりました。

作成したプロジェクトをGitに公開したら動かなくなった。。。

  1. 自分の端末上で動いたのを確認したのでGitへPUSH
  2. 再度アプリを起動

こんな手順で起動したら動かなくなりました。下の様なエラーメッセージです。

org.gradle.internal.exceptions.LocationAwareException: Task 'run' not found in root project

エラーは下の様なGradle Executionビューの赤い部分(これは直した後なので緑です。。。)

ここの赤くなっている部分を右クリックするとエラーメッセージを見ることができます。

現状では、エラーがないので下の様になります。

肝心の解決策

上の様な画面にてエラーがあったGradleプロジェクトを右クリック

※今回jはJankenGameプロジェクトを右クリックしました。
 Gradleで生成されるプロジェクトは「XXX」と「XXXApp」プロジェクトの2つが
 あるので「XXX」プロジェクトを右クリック→Propertiesを選択する

そうしてGradleタスクのrunを起動すると治りました。









Java Maven 〜POMファイルの${xxx.xxx}の値〜

「{$XXX.XXX}」の値に関して

以下のPOMファイルの赤い字の部分の値は何を指すのかわかりませんでした。

  <build>  ....  </build>
  <dependencies>
   <dependency>
      <groupId>org.nd4j</groupId>
      <artifactId>nd4j-native-platform</artifactId>
      <version>${nd4j.version}</version>
    </dependency>
</dependencies>

{$XXX.XXX}の様な記載はどこかのプロパティを参照するのはわかっていたのですが、プロジェクトが大きくなるとどこにそのプロパティがあるかわからなくなります。今回はND4Jを使用してプロジェクトを作成していたのでその時に気がつきましたのでここにメモしておきます。

MavenBuildのエラー

[ERROR] 'dependencies.dependency.version'
        for org.nd4j:nd4j-native-platform:jar
      must be a valid version but is 
        '${nd4j.version}'. @ line 40, column 15

 上の様な絵エラーが出てビルドができませんでした。そしてうまくいく方との比較で以下の記載がないことに気がつきました。

  <properties>
   <nd4j.version>0.9.1</nd4j.version>
  </properties>

なんとかビルドに成功。

つまるところ。。。

POMファイルの参照関係(親子関係)のあるファイル内に「${XXX.XXX}」が存在するはず、大きいプロジェクトの時はJARなどのファイル内にあるかも?









Java Properties 〜プロパティファイルが読めない〜

プロパティファイルのロードができない!こんな感じでつまづきました。

<ソース>

Properties prop = new Properties();
try {
	prop.load(getClass().getResourceAsStream(PROPERTIES_FILE_PATH));
} catch (IOException ie) {
	ie.printStackTrace();
	System.exit(-1);
}

このソースで「PROPERTIES_FILE_PATH」に「resources/views.properties」と指定していたのですが、ロードできない。。。

PROPERTIES_FILE_PATH = "resources/views.properties";

「views.properties」でもダメだった。。。

PROPERTIES_FILE_PATH = "views.properties";

/views.properties」ならオッケーだった。



ちゃんちゃん(笑)









Java エラー: メイン・クラス〜EclipseでMainメソッドが動かない〜

以下のようなエラーメッセージが出ました。

エラー: メイン・クラスzenryokuservice.mathkit.MathKitが見つからなかったかロードできませんでした

パッケージ名もあってるし、メインメソッドの書き方も間違っていない。。。

犯人はお前だぁ!

コンパイル後のパッケージ名と起動しようとしているクラスのパッケージが違っているためだと思ったが、それでもダメでした。

とりあえずEclipse再起動

治りました(笑)

でもbinフォルダを削除したまま再作成されていない。。。

  1. JavaFXプロジェクトで作成した時には「bin」フォルダがあった
  2. Mavenプロジェクトに変更
  3. Mainクラスを作成(MathKit.java)し起動
  4. エラー
  5. Eclipse再起動
  6. 治った!!

こんな感じの流れでした。JavaFXプロジェクトとMavenプロジェクトの変換の時の問題であろう。。。

予想の領域は出ないが、ここから先はMavenの範疇なので、調査は止めることにします。

適当なとこで、作業をストップする事もメリハリをつけるという意味で大切なことです。そうしたないと、ズルズルと夜遅くまでやる事になります…

「あっ、XXXさんまだいたの?ちょっと、これお願いしていい?」と言われる可能性大です(笑)

でわでわ。。。









Java Maven Error 〜-source 7以降を使用してください〜

Mavenの実行時エラーに以下のような文言が出た時の対処

(リテラル内のアンダースコアを使用可能にするには、-source 7以降を使用してください)
(ラムダ式を使用可能にするには、-source 8以上を使用してください)
(try-with-resourceを使用可能にするには、-source 7以降を使用してください)

これは単純にコンパイラーのバージョンが古いのでバージョンをあげてください。。。と言うことですが、「Eclipseの設定ではJava8使ってるのに?」とか不明点があり少しハマりました。

Mavenで使用するデフォルトのコンパイラー(JDK)のバージョンが古いのが原因でした。

なので以下のようにプロパティを追加してやればOK