0

私はLinuxを使用しており、ディレクトリにtestjavaappフォルダを作成してから、3つのファイルとそのフォルダにファイルを/home/Downloads追加しました。MyApp.javaMyLib.javahppc-0.4.1.jar

MyLib.javaで始まる:

import java.util.ArrayList;
import com.carrotsearch.hppc.IntArrayList;

public final class MyLib {
...

MyApp.java始まる間:

import static MyLib.*;
import com.carrotsearch.hppc.IntArrayList;
import java.util.Date;

public class MyApp {

    public static void main(String[] args) {
...

私が実行するとき:

[myself@laptop ~]$ cd Downloads/testjavaapp/
[myself@laptop testjavaapp]$ javac -cp '.:/home/myself/Downloads/testjavaapp/hppc-0.4.1.jar' MyLib.java

JavaコンパイラはMyLib.class問題なく作成します。しかし、私が実行すると:

[myself@laptop testjavaapp]$ javac -cp '.:/home/myself/Downloads/testjavaapp/hppc-0.4.1.jar' MyApp.java

それは吠えます:

MyApp.java:1: error: cannot find symbol
import static MyLib.*;
              ^
  symbol: class MyLib

ライブラリを適切に追加したようです.jarが、ローカル静的ライブラリが不適切です。

修正を手伝ってもらえますか?

4

1 に答える 1

0

まあ、これはかなり明白に思えるので、何かが欠けているかもしれません

javac -cp '.:/home/myself/Downloads/testjavaapp/hppc-0.4.1.jar' *.java

編集

はい、明らかに見逃していたのは、静的インポートがデフォルトのパッケージでは機能しないことです。このバグ レポートでは、Java がこのように動作する理由についていくつかの議論があり、最終的には「欠陥ではない」としてクローズされました。これは、Java が動作するように設計された方法です。既定のパッケージには予期しない動作がいくつかあります。これが、プログラマーが既定のパッケージを使用しないことをお勧めする理由の 1 つです。

于 2013-01-09T12:25:21.183 に答える