私は遠隔のインスタンスのtomcatサーバー(v.7)で実行しているプロジェクトを持っています。Javaエラー:シンボルを見つけることができません:メソッドjoin(java.lang.String、java.lang.String [])
プロジェクトをコンパイルし、ローカルに.warファイルを生成しようとすると、問題はありません。
しかし、私は、リモートAMIインスタンス上でまったく同じことをしようとするとき、私は次のエラーを取得する:次のように
[INFO] ------------------------------------------------------------- [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 21.963s [INFO] Finished at: Thu Dec 28 20:01:58 UTC 2017 [INFO] Final Memory: 114M/1431M [INFO] ------------------------------------------------------------------------ [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.3:compile (default-compile) on project wildbook: Compilation failure: Compilation failure: [ERROR] /home/ubuntu/Wildbook_javaTweetBot/src/main/java/org/ecocean/servlet/ServletUtilities.java:[866,24] cannot find symbol [ERROR] symbol: method join(java.lang.String,java.lang.String[]) [ERROR] location: class java.lang.String
ServletUtilities.javaのライン866は、読み取ります
String text2 = String.join(" ", text1);
コンテキストの場合は、それを取り巻くコードの塊です:
text = text.replaceAll("[,.!?;:]", "$0 ");
System.out.println("text: " + text);
String[] text1 = text.replaceAll("[^A-Za-z0-9 ]", "").toLowerCase().split("\\s+"); //TODO I think this does a better version of what the above (text = text.replaceAll("[,.!?;:]", "$0 ");) does??
String text2 = String.join(" ", text1);
私はこのコードをローカルでaj私のテキスト文字列(String text
は、上記のコードが置かれているメソッドに渡されるパラメータ)として、問題なくavareplを使用していました(私は "これはテストです12/28/2018です")。
AMIインスタンス上のJavaのバージョンは次のとおりです。
openjdk version "1.8.0_91" OpenJDK Runtime Environment (build 1.8.0_91-8u91-b14-0ubuntu4~14.04-b14) OpenJDK 64-Bit Server VM (build 25.91-b14, mixed mode)
mvn -version
利回り:
は、誰もが/これが起こっかもしれない理由を知っている私は、次のトラブルシューティングを行うために何ができるかについての提案を持っています?
AMIで "mvn -version"を実行するとどうなりますか? –
上記の@ChrisSnyderが更新されました。 – Atticus29
一度同様の問題があっても、コードはローカルのWindowsマシンで正常にコンパイルされていましたが、認識できない文字列エラーが発生してサーバー上でエラーが発生しました。デバッグで私はウィンドウがUTF-8エンコーディングを持っていることが判明し、ファイル内の特殊文字を識別することができたが、Linuxは失敗した。私はnotepad ++でファイルを開き、特殊文字を指摘することができました。これがあなたを助けてくれますか? また、サーバー側でANTスクリプトを使用してコンパイルしていたので、オプションでencoding = UTF-8をjavacコマンドの安全側に追加しました。 –