• ベストアンサー

APIの非奨励クラス?

失礼致します。 質問させてください。 今、java.util.regex.PatternをインポートしてPattern下のquoteメソッドを使ったところ「java.lang.NoSuchMethodError: java.util.regex.Pattern.quote(Ljava/lang/String;)Ljava/lang/String;」 というエラーが出ました。 ローカルではこのメソッドを使い、問題なく動いているにもかかわらずです。PatternクラスはAPIに掲載されているのですがquoteはありませんでした。このメソッドは削除されたのでしょうか?誰かご存知の方、教えて頂けますでしょうか?

  • Java
  • 回答数2
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
noname#19431
noname#19431
回答No.1

java.util.regex.Pattern.quoteが導入されたのは1.5からです。 コンパイルは1.5でしたけど、実行は1.4だったっていうオチではないでしょうか。 実行時のclasspathなどを確認されてみては?

javatea_1985
質問者

補足

見事に落ちました。 ローカル:jdk1.5.0_05 リモート操作しているPC:j2sdk1.4.2_08 が入っていました。 うーん。 1.リモート側のsdkをバージョンアップさせる 2.1.4.2_08で使えるクラス内で今の要求を満たす代替案を探す。 くらいが考えられますが、1をしても大丈夫でしょうか?あまり知識がなく変なことを聞いているかもしれません。ただ、なぜコンパイルは終わっているのにサーバ上に上げると見られなくなるのか、が分かりません。リモートのIPが関係あるのですか?

その他の回答 (1)

  • bgbg
  • ベストアンサー率53% (94/175)
回答No.2

リモート側のJREをアップグレードしていいかどうかはそのマシンの利用状況が分からないと何ともいえないでしょう。 1.4で動いていたものが1.5でも動く保証はありません。むしろ動かなくなる可能性の方が大きいです。 アップグレードによる影響範囲が分からないなら代替案を探すのが無難です。 また、コンパイルはプログラムソースをVMが理解できる機械語に翻訳する作業です。1.5用のコンパイラでコンパイルされた機械語は1.5用のVMでしか読めません。

javatea_1985
質問者

お礼

ご回答ありがとうございました。 参考にさせて頂きます。

関連するQ&A

  • NetBeansをはじめたのですが・・・

    NetBeans5.0をはじめ、本を見ながら入力したのですが   シンボルを見つけられません。   シンボル:メソッド format   (java.lang.String.java.util.Date,java.lang.String)   場所:java.lang.Stringのクラス と出て実行できません。 とても困ってるのでお願いします。

    • ベストアンサー
    • Java
  • JavaでのAPIの覚え方ってみさなんどうされてますか?

    初めまして。最近Javaを勉強し始めたんですが、 友人に聞いたところ短期間にJavaが理解出来るコツは 『Java (TM)2 SDK ドキュメント(API仕様)』を読みながら 次の順番でサンプルを作りながら主要なパッケージを覚えて行けばいいんじゃない? と言われました。 (1)JAVA.LANG (2)JAVA.IO (3)JAVA.UTIL (4)JAVA.NET (5)JAVA.TEXT (6)JAVA.STRING (7)JAVA.MATH 必死でメソッドやインターフェース等のサンプルを作っている所なのですが、 同じような単語があったり、継承関係が複雑だったり。。。 頭の中で整理出来ず、ただ闇雲にやっているだけのような感じがしてきました。 皆さんはどのような工夫や方法でAPIを覚えて行きましたか? 是非ご回答の程お願いします。

    • ベストアンサー
    • Java
  • [JAVA]エラーが解決できません。

    JAVAのエラーが解決できません。 ?,[,],(,)をreplaceAllを用いて置換したいと下記のようなプログラムを書いたのですが正常に動作しません。 また、Unicodeに置き換えても見たのですが、うまく動作しませんでした。 そして、排出されたエラーは下記の通りです。 文中にある、?などの記号を置換したいのですが何か良い方法は無いでしょうか? 何卒、ご教授、宜しくお願い致します。 テストコード>>> class Test { public static void main(String args[]) { System.out.println(args[0].replaceAll("?", "置換?")); System.out.println(args[0].replaceAll("[", "置換[")); System.out.println(args[0].replaceAll("(", "置換(")); } } エラー>>> Exception in thread "main" java.util.regex.PatternSyntaxException: Dangling meta character '?' near index 0 ? ^ at java.util.regex.Pattern.error(Unknown Source) at java.util.regex.Pattern.sequence(Unknown Source) at java.util.regex.Pattern.expr(Unknown Source) at java.util.regex.Pattern.compile(Unknown Source) at java.util.regex.Pattern.<init>(Unknown Source) at java.util.regex.Pattern.compile(Unknown Source) at java.lang.String.replaceAll(Unknown Source) at Test.main(Test.java:9)

    • ベストアンサー
    • Java
  • Java正規表現-"ある文字列"を含まない文字列

    Javaの正規表現で、HTMLタグ以外の文字列を抽出しようとしています。 HTMLタグはの正規表現は"(</?.*>)"のように表しました。これの否定をしたいのですが、方法を教えて下さい。HTMLタグ以外にヒットさせたいです。 一応、現段階のソースを載せます。 import java.util.ArrayList; import java.util.regex.Matcher; import java.util.regex.Pattern; public class HTMLInnerGetter { public static void main(String[] args){ String regex = "(</?.*>)"; String target = "<html><head><title>title</title></head><body><h1>head1<br><p>pragraph</p></body></html>"; ArrayList<String> innerHTMLs = new ArrayList<String>(); Pattern pattern = Pattern.compile(regex); Matcher matcher = pattern.matcher(target); while(matcher.find()){ innerHTMLs.add(matcher.group(1)); } System.out.println(innerHTMLs); } } 出力結果 [<html><head><title>title</title></head><body><h1>head1<br><p>pragraph</p></body></html>] ※否定できなかったので、HTMLタグがヒットしています。

    • ベストアンサー
    • Java
  • 配列クラスのクラス名

    配列クラスのクラス名 配列クラスのクラス名を教えてください。 配列はクラスですよね。そこまでは分かります。 こんなコードを実行しましたが System.out.println((new int[0]).getClass()); System.out.println((new boolean[0]).getClass()); System.out.println((new String[0]).getClass()); System.out.println((new Integer[0]).getClass()); 親切にこのような結果を出力してくれます。 class [I class [Z class [Ljava.lang.String; class [Ljava.lang.Integer; 結果として配列が何というクラスなのかは分かりません。 (もしかして『[I』『[Z』『[L』という名前のクラスでしょうか?) 昔Javaのソースを読んだときに、配列クラスのファイルも 読んだことがあるような気がするのですが、 なんと言うクラスだったか忘れてしまいました。 パッケージ名+クラス名を教えてください。 よろしくお願いします。

    • ベストアンサー
    • Java
  • このクラスをもとに…。

    import java.lang.*; import java.io.*; import java.util.*; class SimpleReader{ public static void main(String[] argv) throws IOException{ InputStreamReader isr = new InputStreamReader(System.in); BufferedReader br = new BufferedReader(isr); String s; System.out.print("Input: "); System.out.flush(); s = br.readLine(); } } このクラスをもとにプロンプト「Input: 」を出力して、文字列を入力させ、その文字列をそのまま出力しつづけ、「end」と入力すると終わるプログラムを教えてください。

  • このクラスをもとに2

    import java.lang.*; import java.io.*; import java.util.*; class SimpleReader{ public static void main(String[] argv) throws IOException{ InputStreamReader isr = new InputStreamReader(System.in); BufferedReader br = new BufferedReader(isr); String s; System.out.print("Input: "); System.out.flush(); s = br.readLine(); } } このクラスをもとにプロンプト「Input: 」を出力して、文字列を入力させ、その文字列を反転(例えば"abc"→"cba")させて出力しつづけ、「end」と入力すると終わるプログラムを教えてください。

    • ベストアンサー
    • Java
  • なんどやってもエラーが・・・SQLserverへの接続

    f_0005flistup$jsp.java [84:1] シンボルを解決できません。 シンボル: メソッド forNmae (java.lang.String) 場所 : java.lang.Class の クラス Class.forNmae(drv); ^ エラー 1 個 コンパイルエラー f_listup. JSPからSQLサーバーに接続しようと考えています。 importは、import="java.sql.*,java.io.*,java.util.*,java.text.*" をいれてます。 原因は何でしょうか・・・。 宜しくお願い致します。

    • ベストアンサー
    • Java
  • ファイルからの入力 Scannerクラス

    ファイルの内容を読み込むプログラムをJavaで作成しています。 Scannerクラスを利用するため、以下のようにimport宣言しました。 package bc; import java.util.Scanner; class FileScanner {  コンストラクタ{   }  メソッド{   }    :    :  mainメソッド{   } } という感じで書いているのですが、この場合のメソッド名は、 Scannerクラスで定義されている名前でないとダメなのでしょうか? 自分で作った名前でメソッドを定義したのですが、 Scannerクラスで定義されていません。 というようなエラーが返ってきてうまくいきません。 どなたか、ご教授くださいm(_ _)m

    • ベストアンサー
    • Java
  • Scannerクラスについて

    僕はeclipse3.2を使っています。 Scannerクラスを使うためにjava.util.*をインポートしたのですが、 java.utilにScannerがみつからないというエラーが出たのですが、どうしたらいいのでしょうか?

    • ベストアンサー
    • Java

専門家に質問してみよう