

ZxingのQRコード作成をJava1.5で行おうとしています。

ですが、javase と core のjar のどれをダウンロードしても、  
Javaプログラムの実行時に、下記のバージョン違い？エラーになり例外が発生します。

[code]

    org.apache.jasper.JasperException: Bad version number in .class file (unable to load class com.google.zxing.WriterException)
    
[/code]

※Javaが古いのは承知していますが、既に数年稼働しているLinuxサーバーのプログラムは、  
Java 1.5で開発・ビルドされている為、このバージョンのままで、Zxing を使いたいです。

ダウンロードして試したZxingのjarのバージョンは以下の通りです。

javase-1.7.jar core-1.7.jar  
javase-2.0.jar core-...  
javase-2.1.jar core-...  
javase-2.2.jar core-...  
javase-2.3.0.jar core-...  
javase-3.0.0.jar core-...  
javase-3.0.1.jar core-...  
javase-3.1.0.jar core-...  
javase-3.2.0.jar core-...  
javase-3.2.1.jar core-...  
javase-3.3.0.jar core-...

他に、Java 1.5で使用可能なjarはありますか？（ダウンロード先が無いか探しましたが見つかっていません。）  
もしくは、どのような対応をすれば、Java 1.5 で、Zxing で QRコードを作成できますか？

ちなみに、プログラムは下記のように記述しています。

[code]

        public String make_QR_code_file(String strPara_QR_code, int iPara_size)
        {
            try {
                String contents = strPara_QR_code;              // QRコード化する文字列
                BarcodeFormat format = BarcodeFormat.QR_CODE;   // QRコード形式を指定
    
                int width  = iPara_size;                        // QRコードの横サイズ
                int height = iPara_size;                        // QRコードの縦サイズ
    
                // 異なる型の値を入れるためgenericは使えない
                Hashtable<EncodeHintType, ErrorCorrectionLevel> hints = new Hashtable<EncodeHintType, ErrorCorrectionLevel>();
    
                // 日本語を扱うためにシフトJISを指定
    //          hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");
    
                //エラー修復レベルを指定
                // ErrorCorrectionLevel.L : 7%の補正レベル
                // ErrorCorrectionLevel.M : 15%の補正レベル
                // ErrorCorrectionLevel.Q : 25%の補正レベル
                // ErrorCorrectionLevel.H : 30%の補正レベル
                hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.M);
    
                //QRコードをエンコードするクラス
                QRCodeWriter writer = new QRCodeWriter();
    
                BitMatrix bitMatrix = writer.encode(contents, format, width, height, hints);
                BufferedImage image = MatrixToImageWriter.toBufferedImage(bitMatrix);
                ImageIO.write(image, "png", new File("/usr/local/apache-tomcat-5.5.33/webapps/ROOT/api/file/qr_code_0001/barcode.png"));
    
    // とりあえずの戻り値
                return "";
            }
            catch (IOException e) {
                e.printStackTrace();
            }
            catch (WriterException e) {
                e.printStackTrace();
            }
    
            return null;
        }
    
[/code]


CC BY-SA 4.0
2017-04-24T11:15:07.813
34241
2022-08-10T08:49:31.407
2022-08-10T08:49:31.407
3060
17129
question
java qr-code
ZxingのQRコード作成をJava1.5で行う方法を教えてください。


このExceptionが出力されるのは、実行環境より上位バージョンのJavaでコンパイルされているのが原因です。

[code]

    『org.apache.jasper.JasperException: Bad version number in .class file (unable to load class com.google.zxing.WriterException)』
    
[/code]

そのようなライブラリを下位バージョンのJavaで利用したい場合、そのバージョンでコンパイルするのが解決策になります。

ただし、`ZXing`は(Githubを見る限り)2.3.0の時点でJava7でコンパイルする前提になっているようなので、Java5でコンパイルが通る可能性は低いと思います。  
残念ですが、`ZXing`を利用するのであれば、Java環境を7以上にする必要があると思います。


CC BY-SA 3.0
2017-04-24T14:47:21.417
34245
2017-04-24T14:47:21.417
20098
34241
answer