web-dev-qa-db-ja.com

MacOSでSublimeText3を使用してJavaを実行する方法

最近、Sublime Text 3を知り、その中でJavaを実行しようとしました。

パッケージJava.sublime-packageのJavaC.sublime-buildを変更しました。

JavaC.sublime-ビルド:

{
    "cmd": ["runJava.sh", "$file_base_name"],
    "file_regex": "^(...*?):([0-9]*):?([0-9]*)",
    "selector": "source.Java"
}

以下のようなシェルスクリプト(runJava.sh)があり、Java binフォルダーに入れます。

runJava.sh:

[ -f "$1.class" ] && rm $1.class
for file in $1.Java
do
echo "Compiling $file........"
javac $file
done
if [ -f "$1.class" ]
then
echo "-----------OUTPUT-----------"
Java $1
else
echo " "
fi

Java binフォルダー:

/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home/bin

ただし、Javaファイルを作成すると、次のようなエラーメッセージが表示されます..。

[Errno 2] No such file or directory: 'runJava.sh'
[cmd: ['runJava.sh', 'Test']]
[dir: /Users/xxxxxxx/Desktop]
[path: /usr/bin:/bin:/usr/sbin:/sbin]
[Finished]

RunJava.shが正しい場所(Java binフォルダー)にあるため、このメッセージが表示された理由がわかりません。

この問題の理由は何ですか?

7
styner

これは、エディターを使用してパッケージファイルを直接変更することは想定されていないためです。ユーザーに警告する拡張子がないにもかかわらず、これらはZipファイルです。

プラグインを変更するには、/ Packagesに移動し、Java.sublime-packageファイルを解凍する必要があります。 Linux構文を使用しますが、手順は同じです。

cd <sublime-text3-folder>/Packages
mkdir Java
cp Java.sublime-packages Java
cd Java
unzip Java.sublime-packages

次に、エディターを使用してJavaC.sublime-buildを変更し、次の行を追加します(最後の行の後の余分なコンマを忘れないでください)

{
   "Shell_cmd": "javac \"$file\"",
   "file_regex": "^(...*?):([0-9]*):?([0-9]*)",
   "selector": "source.Java",

   "variants":
   [
       {
            "name": "Run",
            "Shell_cmd": "Java $file_base_name"
       }
   ]
}

Java.sublime-packageのコンテンツを再度圧縮し、次の方法でPackageフォルダーに戻します。

Zip Java.sublime-package * cp Java.sublime-package ..//Packages

Sublimeを再起動し、Ctrl + Bを使用してプロジェクトをビルドすると、Ctrl + Mayus + Bで実行できるようになります。

12
Alex

簡単なステップバイステップ:

  1. インストール パッケージコントロール まだインストールしていない場合

  2. Package Controlを使用して、インストール Package Resource Viewer

  3. Package Controlを開き、prvと入力して、PackageResourceViewer: Open Resourceを実行します。

  4. Javaを選択します

  5. JavaC.sublime-buildを選択します

  6. ビルドJSON定義を以下のコードブロックに正確に置き換えます

  7. 完了です。 ctrl+bは、Javaファイルをコンパイルして実行する必要があります。

JSON定義を作成します。

{
  "cmd": ["javac \"$file_name\" && Java \"$file_base_name\""],
  "file_regex": "^(...*?):([0-9]*):?([0-9]*)",
  "selector": "source.Java",
  "Shell": true
}
9
steel

ステップバイステップを提供せずに同じことを言うような多くの解決策がそこにあります。 Mac'16でのSublime Text 3での私の経験は次のとおりです。

ターミナルウィンドウを開き、次の手順を実行します。

$ cd/Applications/Sublime\Text.app/Contents/MacOS/Packages/

混乱させる一時ディレクトリを作成しました。

$ mkdir Java

現在のJava.sublime-packageを新しいJavaディレクトリとcdにコピーしますからJavaへ。

$ cp Java.sublime-package Java /

$ cd Java

次に、パッケージを解凍して内容を確認します。

$ unzipJava.sublime-パッケージ

ここで、ビルドファイルJavaC.sublime-buildを編集します。崇高なテキストのコマンドラインスクリプトがある場合:

$ subl JavaC.sublime-build

さもないと、

$ vi JavaC.sublime-build

次に、以下をJavaC.sublime-buildにコピーしました。これは、 Sean Mullen によって投稿されました。

{
    "cmd": ["javac \"$file_name\" && Java \"$file_base_name\""],
    "Shell": true,
    "file_regex": "^(...*?):([0-9]*):?([0-9]*)",
    "selector": "source.Java"
}

その後、保存し、Javaディレクトリ内で次のように入力します。

$ ZipJava.sublime-パッケージ*

新しいビルドパッケージを必要なフォルダー(親ディレクトリ)に移動します。

$ mv Java.sublime-package ../

更新:4/18/18:申し訳ありませんが、この回答を調整するのに時間がかかりました。 @bumbuからのコメントに基づいて、一時ディレクトリを削除する前に次のコマンドを実行する必要があります。

$ cd ..

一時Javaディレクトリを削除します。

$ rm -fr Java /

そして完了。 Javaファイルをビルドすると、それも実行しようとします。プログラムを実行するために別の「バリアント」を実行する代わりに、この動作を好みます。

7
BenS

私はこのように私のものを変更しました

実行するには、ctrl + shift + bを実行します

{
    "Shell_cmd": "javac \"$file\"",
    "file_regex": "^(...*?):([0-9]*):?([0-9]*)",
    "selector": "source.Java",

    "variants":
    [
        {
            "name": "Run",
            "Shell_cmd": "Java $file_base_name"
        }
    ]
}
2
Ynty Wanady

Sublime Text 3では、tools-> Build System-> New Build Systemをクリックし、 Sean Mullen)から以下を貼り付けるだけです。

{
"cmd": ["javac \"$file_name\" && Java \"$file_base_name\""],
"Shell": true,
"file_regex": "^(...*?):([0-9]*):?([0-9]*)",
"selector": "source.Java"
}

次に、それをJava_run.sublime-buildとして保存します

それでおしまい! tools-> Build Systemをもう一度クリックすると、Java_runが表示されます。これを選択して、ビルドを試みてください、Javaファイルは自動的にコンパイルおよび実行されます。

enter image description here

1
Feng Yi

エラーメッセージに示されているように、/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home/binはSublimeのパスにありません。これを回避するには2つの方法があります。 1つ目は、runJava.sh/usr/binに移動するか、そこにシンボリックリンクを作成することです。 2つ目は、JavaC.sublime-buildファイルを次のように変更することです。

{
    "cmd": ["runJava.sh", "$file_base_name"],
    "path": "/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home/bin:$PATH",
    "Shell": true,
    "file_regex": "^(...*?):([0-9]*):?([0-9]*)",
    "selector": "source.Java"
}

これにより、ビルドシステムの実行時にJava binフォルダーがSublimeのPATHに追加され、runJava.shを見つけることができるようになります。"Shell": trueを追加すると、bashを介してコマンドが実行されます。これにより、他の環境変数を取得できるようになります。

0
MattDMo