2016-10-01 7 views
0

私はIntelliJ IDEAとJDK 8を使用しています。「クラスファイルに間違ったクラスが含まれています」を修正するにはどうすればよいですか?

私はいくつかのコンパイル済みのJavaクラスを持っており、これらのクラス内で使用するメソッドとしてコードとして外部ライブラリとしてインポートしました。しかし、私は実際にそれらの.classファイルを使用するように見えることはできません。

私はこのコードを実行しようとするたびに:

public static int spendOnCokes(int sum, DrinksMachineA mach) { 
    int count = 0; 
    mach.insert(sum); 

    try { 
     while (mach.getBalance() >= mach.getPrice()) { 
      mach.pressCoke(); 
      count++; 
     } 
    } catch (EmptyMachineException e) { 
    } 

それは私に次のエラー与える:私は周りに検索した、と一部の人々はそれが何かを持っていたことを示唆しているように見えた

Error:(21, 45) java: cannot access com.sanac.DrinksMachineA 
    bad class file: /homes/jmcv3/Documents/Java/ClassesArchive/com/sanac/DrinksMachineA.class 
    class file contains wrong class: DrinksMachineA 
    Please remove or make sure it appears in the correct subdirectory of the classpath. 

をフォルダ階層/パッケージ名で行います。それは私にはうまく見える。また、.classファイルがコンパイルされているので、JDK 5に切り替えることもできませんでした。 (また、そのどこかをお読みください。)

は、ここでディレクトリ構造を概説スクリーンショットです:

Structure

私が欲しいのは、私のコードでこれらのコンパイルされた.classファイルを使用できるようにすることです。私は本当にばかげた何かを見逃しているに違いないので、とてもシンプルに見えます。何か案は?

+0

.javaソースファイルの先頭にこの行がない可能性があります。 'package com.sanac;' – Andreas

+0

ファイル内のすべてのコードを提供してください – Andrew

+0

おそらくEndorphinexが言ったことでしょう。 –

答えて

0

答えは簡単です:.classファイルは外部ライブラリではありません。

jar.exe Javaツールを使って "ClassesArchive"を.jarファイルに書き出すことができます。

0

ファイル名とパブリッククラス名は同じにする必要があります。私の見解ではその名前の問題です。

関連する問題