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

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

ただいまの
回答率

88.92%

SublimeText3でコンソールイメージが出力されない

解決済

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 4,210

Shichimiya

score 11

前提・実現したいこと

SublimeText3内でビルドして結果を表示させたい。
コンソールイメージを出力したいです。

発生している問題・エラーメッセージ

sublimetext3のテキストエディタを使ってJavaのプログラムを
ビルドさせようとしたのですが、Finished in 0.0s with exit code 1と
出て、ビルド自体はできているようです。しかしコンソールイメージが出力できません。

該当のソースコード

public class HelloWorld
{
public static void main( String[] args )
{
System.out.println( "Hello World!" );
}
}

試したこと

日本語化、Javaのビルドも可能にして、ひたすらビルドしていますが
ビルドが終了するだけで結果が表示されません。

補足情報(言語/FW/ツール等のバージョンなど)

https://www.sublimetext.com/3 
上記のサイトより、Windows64ビットVerをダウンロード

恐れ入りますがご回答よろしくお願い申し上げます。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

checkベストアンサー

+2

Sublime Text 3に付属しているものやパッケージコントロールで入れたものを問わず、言語ファイルに付属のbuild-systemファイルは実行ファイルのパスが違ってたり日本語(特にWindows)だと文字コードがあわずに表示出来なかったりと使い勝手が良くないので、環境にあわせて自前でビルドシステムを用意するのが良いです

[ツール] > [ビルドシステム] > [ビルドシステム追加]を選択するとuntitled.sublime-buildが開くので、下記のような感じでビルドシステムを作成して保存します

[ビルドして実行]でコマンドパレットが開くので[Java - ビルドして実行]を選択
これで以降は[ビルド]で実行結果がビルド結果パネルに表示されるようになります

Sublime TextにBuild Systemを追加するより

{
    "selector": "source.java",
    "file_regex": "^(.*?):([0-9]*):?([0-9]*):? (.*)",
    "shell": true,
    "cmd": ["javac", "-encoding", "utf-8", "$file_name"],
    "windows":
    {
        "encoding": "cp932"
    },

    "variants":
    [
        {
            "name": "ビルドして実行",
            "shell": true,
            "windows":
            {
                "encoding": "cp932",
                "cmd": "javac -encoding utf-8 $file_name & java $file_base_name"
            }
        },

        {
            "name": "ターミナルで開く",
            "shell": true,
            "windows":
            {
                "cmd": ["start", "cmd", "/c", "javac -encoding utf-8 $file_name & java $file_base_name & pause"]
            }
        }
    ]
}

なお、このビルドシステムファイルはWindows専用なので、他のOSでは書き換える必要があります。

補足:Sublime Text 3のビルド結果パネルは文字の出力は出来ますが入力は出来ないので、その場合はターミナルを開いて実行する必要があります。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/06/30 16:13

    返信が遅くなって申し訳ありません。lunateaさんのご指摘通りに実行すると、表示がしっかりされました。また、実行する際もターミナル上と二通りの実行方法を選べるようになり、とても使いやすくなりました。本当にありがとうございました。

    キャンセル

+1

lunateaさんのコメントが参考になるので自分もビルドシステムを設定してみました。

なお、自分の環境では標準でもTools>Build with...とするとAntとJavaCは入っており、JavaCを選ぶとコンパイルだけはできるようですが実行まではできませんでした。
lunateaさんの方法を使うとTools>Build with...で「Java - ビルドして実行」「Java - ターミナルで開く」がメニューに追加され実行までできるようになりました。


注意点をいくつか。

  • パス設定
    JDKのパスが設定されていないと多分動かないと思います。確認する一番簡単な方法はWindowsのコマンドプロンプトを開いて、以下の2つのコマンドでそれぞれバージョンが正しく表示されればOKです。
    javac -version
    java -version
    万一期待通り表示してくれない場合はパスの設定の必要があります。方法については「Windows javac パス設定」で検索すると出てきますが、このページなどを参考にどうぞ。

  • ビルド設定ファイルの格納場所
    lunateaさんが挙げておられるqiitaのページおよびlunateaさんが示しておられる設定ファイルはどこにセーブすればいいか自分はよくわかりませんでしたが、とりあえず以下へセーブすると動きました。
    C:\Users\ユーザー名\AppData\Roaming\Sublime Text 3\Packages\User\java.subime-build

  • コンパイル失敗時の動作
    ビルド設定用ファイルの中身ですが、コンパイルに失敗した場合でもプログラムが実行される場合があります。javacはコンパイルが失敗した際にクラスファイルを消してくれません。またコマンドプロンプトでの'&'の機能は左側に書いたコマンド(javac)が失敗(exit codeが0以外)してもお構いなしに右側に書いたコマンド(java)を実行してしまいます。この動作により、コンパイルに失敗した場合に以前正常にコンパイルできたときのクラスファイルを使ってプログラムが動いてしまいます。
    普通のJava用のIDEを使っていれば当然ながらコンパイルに失敗すれば実行はされませんので、sublime text3では注意しながら使う必要があります。

  • コンパイル可能なJavaソースファイルの条件
    lunateaさんが挙げておられるビルド設定ですと、コンパイルする対象のjavaソースファイルにはpackage指定があってはなりません。つまりデフォルトパッケージとして定義されたファイルしかコンパイルできません。sublime text3では「簡単にjavaソースファイルを書いてエディタ上で気軽にコンパイル&実行」という使い方になると思いますのでこの制限は特に問題にはならないでしょう。
    ただ本格的なJavaプログラミングをするならsublime textより普通にeclipse,IntelliJ IDEA,NetbeansなどのIDEを使った方がよいと思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/06/30 16:11

    返信が遅くなって申し訳ありません。eclipseも良いのですが、sublimeも軽くて使いやすい為、使い方に慣れておきたかったのでご質問させて頂きました!様々なアドバイスありがとうございました。

    キャンセル

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

  • ただいまの回答率 88.92%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る