2016-08-03 11 views
0

コンパイルを開始して崇高な状態でJavaを実行しようとしましたが、パッケージが定義されていないと正常に動作します。サブライムテキストでJavaを実行しているときにエラーが発生する[OSX]

このコンパイルして実行します。

public class Tester 
{ 
    public static void main(String[] args) 
    { 
     System.out.println("this is a test."); 
    } 
} 

をしかし、私はパッケージ追加した場合:

package test; 

public class Tester 
{ 
    public static void main(String[] args) 
    { 
     System.out.println("this is a test."); 
    } 
} 

を私はこのエラーを得た

Error: Could not find or load main class Tester 
[Finished in 6.8s with exit code 1] 
[cmd: ['javac "Tester.java" && java "Tester"']] 
[dir: /Users/ph/Documents/JAVA/test] 
[path: /usr/bin:/bin:/usr/sbin:/sbin] 

任意のアイデア理由は、この出来事またはどのように修理する?

+1

あなたはパッケージを追加したので、testというフォルダを作成し、そこにTester.javaを入れてテストフォルダの外で実行しなければならないと思います。 java test.Testerそれを実行する – Yan

+0

ええ、それはどのように構造化されている、それはいつも私はパッケージを追加したが、それをコンパイルするだけで、それは私がそれを遵守し、良い。 – penHolder

答えて

1
  1. [CMD:[ 'javacの "Tester.java" & & javaの "テスター"']]
  2. [ディレクトリ:/ユーザー/ PH /ドキュメント/ JAVA /テスト]

サブライムテキストはパッケージ名である "test"というディレクトリ(#2を参照)であなたのプログラムをコンパイルしようとしています。そのディレクトリ内の "Tester.java"というファイルを探していますが(#1を参照)、 "Tester.java"がカレントディレクトリ( "JAVA")の中にあるため存在しません。

パッケージでJavaファイルをコンパイルする場合、ファイルはパッケージ階層を反映するディレクトリ構造にある必要があります。そのため、ファイルをそのパッケージに含まれるパッケージに対応するディレクトリに移動する必要があります。たとえば、example.utils.lettersパッケージのクラス "A"は、../example/utils/letters/のパスに存在する必要があります。 A.java

フォルダ「JAVA/test」を作成し、そこにTester.javaを移動して実行します。

+0

答えてくれてありがとう、しかし、私はファイルを整理する方法を知っています、そして、それはファイルです、それはなぜ私が同じディレクトリにある場合、昇華がメインクラスを見つけることができないのか分からないので、実際にコンパイルして、ターミナルから実行すると、それはcorectlyで動作します。 – penHolder

関連する問題