teratail header banner
teratail header banner
質問するログイン新規登録
Java

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

Q&A

解決済

2回答

854閲覧

java_関数内のrunメソッドがどこに保存されているプログラムを参照しているのか分からない

MF0524

総合スコア51

Java

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

0グッド

0クリップ

投稿2022/01/16 15:49

編集2022/01/17 07:52

0

0

知りたいこと

画像解析ソフトImageJで実行されるプログラムがどのように動いているのか知りたく、ソースコードを見てみました。
その結果、私が知りたいソフト内の動作は以下プログラムで記述されることが分かりました。

java

1import ij.*; 2import ij.process.*; 3import ij.gui.*; 4import java.awt.*; 5import ij.plugin.*; 6 7public class My_Plugin implements PlugIn { 8 9 public void run(String arg) { 10 run("Set Measurements...", "area fit shape redirect=None decimal=2"); 11 } 12 13}

このプログラム内で、runメソッドにより実行される、Set Measurementsの内容を記述したプログラムがどこにあるのか知りたいです。

調べた内容

ImageJのプログラムはgithub上に記載されています。
javaは使用した経験がなく、恐らくですがimport文で読み込んだフォルダ内のどこかにSet Measurements...に関するコードがあると思っているのですが、上記のgithub上では該当するようなプログラムは見つけられませんでした。
どなたか、Set Measurements...の実行内容を記載しているプログラムがどこにあるのか教えて頂けないでしょうか?
よろしくお願い致します。

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

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

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

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

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

jimbe

2022/01/18 16:49

> 以下プログラムで記述されることが分かりました。 そのプログラムは GitHub のどこにあるのでしょうか。
guest

回答2

0

ベストアンサー

import文で読み込んだフォルダ内のどこかにSet Measurements...に関するコードが

Java コードはメソッドだけでは存在しません。必ずクラスに含まれます。(C で関数を include したようなイメージをされているかも知れませんが、そうではありません。)
従いまして、import よりも、 My_Plugin クラスがどのようなクラス等と関係しているかを追う必要があります。

My_Plugin クラスに run(String,String) が無ければ、実は My_Plugin クラスはインナークラスでアウタークラスに該当メソッドが有ったりしませんでしょうか 。

私にはこの My_Plugin クラスは単なる書き方サンプルにしか見えませんが…。

投稿2022/01/18 16:38

編集2022/01/18 17:16
jimbe

総合スコア13357

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

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

MF0524

2022/01/21 14:29

返信が遅くなり申し訳ありません。ご回答ありがとうございます。参考になりました。 仰る通りで、クラスをたどっていくことで調べたいプログラムに行き着くことができました。 ありがとうございました。
guest

0

恐らくですがimport文で読み込んだフォルダ内のどこかにSet Measurements...に関するコードがあると思っているのですが、上記のgithub上では該当するようなプログラムは見つけられませんでした。

ソースをもってきて、grepしてみては?

$ grep -r 'Set Measurements' src src/main/java/ij/measure/ResultsTable.java: Analyze/Set Measurements if that value is higher than 3. */ src/main/java/ij/measure/ResultsTableMacros.java: "with Analyze>Set Measurements>Display Label)."+ src/main/java/ij/Menus.java: addPlugInItem(analyzeMenu, "Set Measurements...", "ij.plugin.filter.Analyzer(\"set\")", 0, false); src/main/java/ij/plugin/filter/Analyzer.java:/** This plugin implements ImageJ's Analyze/Measure and Analyze/Set Measurements commands. */ src/main/java/ij/plugin/filter/Analyzer.java: // Order must agree with order of checkboxes in Set Measurements dialog box src/main/java/ij/plugin/filter/Analyzer.java: GenericDialog gd = new GenericDialog("Set Measurements"); src/main/java/ij/plugin/filter/Analyzer.java: popup menu of the Analyze/Set Measurements dialog box. */ src/main/java/ij/plugin/filter/Analyzer.java: menu of the Analyze/Set Measurements dialog, or null src/main/java/ij/plugin/filter/Analyzer.java: /** Saves the measurements specified in the "Set Measurements" dialog, src/main/java/ij/plugin/filter/Analyzer.java: // Returns the measurement options defined in the Set Measurements dialog. */ src/main/java/ij/plugin/filter/Filler.java: IJ.error("Label", "To label a selection, enable \"Add to overlay\" in Analyze>\nSet Measurements and press 'm' (Analyze>Measure)."); src/main/java/ij/text/TextPanel.java: addPopupItem("Set Measurements..."); src/main/java/ij/text/TextPanel.java: else if (cmd.equals("Set Measurements...")) src/main/java/ij/text/TextPanel.java: IJ.doCommand("Set Measurements..."); src/main/java/ij/text/TextWindow.java: m.add(new MenuItem("Set Measurements..."));

投稿2022/01/17 08:32

編集2022/01/17 08:32
shiketa

総合スコア4133

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

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

shiketa

2022/01/17 13:19

本気で中身を理解したいのであれば、IntelliJやeclipseといったIDEを使って、デバッガで追うのがいいとおもいます。ImageJがナニをするものなのかはわたしはまったく理解していませんが、実行してとあるプラグインのブレークポイントで止めて変数の内容を確認して、というところまでは試せました。 ちなみに。java9とmavenは最低限必要だとおもいます。
MF0524

2022/01/21 14:24

返信が遅くなり、申し訳ありません。ご回答ありがとうございました。参考になりました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.30%

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

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

質問する

関連した質問