スリ飯屋Malankaのフリーエンジニアな日々

IT実務未経験から約1年、東京でフリーランスのRuby on Railsエンジニアに転職。約2年半、大阪中崎町でスリランカカレーの間借りしてました。フリーランスエンジニアになるためのノウハウ、スリランカの事を発信していきます。

【Ruby on Jets】dynamodb-localを実行した時に、javaのバージョンが古くてエラー発生。Exception in thread "main" java.lang.UnsupportedClassVersionError: org/apache/logging/log4j/spi/ExtendedLogger : Unsupported major.minor version 52.0

【Ruby on Jets】  dynamodb-localを実行した時に、 javaのバージョンが古くて エラー発生


こんにちは、mah(@RailsRubyMah6h)です。


このブログでは、僕がIT未経験から約1年でフリーランスエンジニアになるまでの過程、ノウハウなどを書いていきます。


今回は、

  • Ruby on Jetsで、dynamodb-localを実行した時に、javaのバージョンが古くて発生したエラー

についてです。


AWS Lambdaに手軽にアプリをデプロイ出来るFW、

Ruby on Jetsを使っています。


Railsのように扱えるので、自分的にはすごく使いやすいです。


下記の記事を参考に、

dynamodbを立ち上げようとしたのですが、

javaのバージョンが古くてエラーになったので、

その対処法を記しておきます。

qiita.com


起きたこと


$ dynamodb-local を実行すると、

下記のようなエラーが出ました。


290  jets-lambda   master *  $ dynamodb-local
Initializing DynamoDB Local with the following configuration:
Port:    8000
InMemory:    false
DbPath:    null
SharedDb:    false
shouldDelayTransientStatuses:    false
CorsParams:    *
Exception in thread "main" java.lang.UnsupportedClassVersionError: org/apache/logging/log4j/spi/ExtendedLogger : Unsupported major.minor version 52.0
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClassCond(ClassLoader.java:637)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
    at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
    at com.amazonaws.services.dynamodbv2.local.shared.logging.LogManager.<clinit>(LogManager.java:28)
    at com.amazonaws.services.dynamodbv2.local.server.DynamoDBProxyServer.<clinit>(DynamoDBProxyServer.java:36)
    at com.amazonaws.services.dynamodbv2.local.main.ServerRunner.createServer(ServerRunner.java:120)
    at com.amazonaws.services.dynamodbv2.local.main.ServerRunner.createServerFromCommandLineArgs(ServerRunner.java:116)
    at com.amazonaws.services.dynamodbv2.local.main.ServerRunner.main(ServerRunner.java:71)


原因


調べると、javaのバージョンが関係してそう。

java - AWS dynamoDB quick start not working - Unsupported major.minor version 51.0 - Stack Overflow


対処法


javaのバージョンを上げれば解決しそう。


手順


こちらの記事を参考に、

javaのバージョンを確認。

295  jets-lambda   master *  $ javac -version
javac 1.6.0_65

296  jets-lambda   master *  $ java -version

java version "1.6.0_65"
Java(TM) SE Runtime Environment (build 1.6.0_65-b14-468)
Java HotSpot(TM) 64-Bit Server VM (build 20.65-b04-468, mixed mode)


バージョンは1.6.0_65。

記事の手順通り、下記のコマンド実行。

$ brew tap AdoptOpenJDK/openjdk
$ brew cask install adoptopenjdk8


再度バージョン確認。

$ java -version

openjdk version "1.8.0_212"
OpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_212-b03)
OpenJDK 64-Bit Server VM (AdoptOpenJDK)(build 25.212-b03, mixed mode)


1.8.0_212に上がっていることを確認しました。


もう一度dynamodb-localを実行します。

$ dynamodb-local
Initializing DynamoDB Local with the following configuration:
Port:    8000
InMemory:    false
DbPath:    null
SharedDb:    false
shouldDelayTransientStatuses:    false
CorsParams:    *


エラーが無く、

ローカル環境でdynamodbが立ち上がることを確認しました。


フリーランスエンジニアとして、RubyやRuby on Railsの案件を獲得する方法


最後に、

  • フリーランスエンジニアとして、RubyやRuby on Railsの案件を獲得する方法

を紹介します。


4つあります。


  1. 知人の繋がりで紹介してもらう

  2. Web上やSNSなどで直営業をかける

  3. 自分でWebサービスを立ち上げる

  4. フリーランス専門エージェントに紹介してもらう


色々ありますが、一番手っ取り早いのは、


  • 4. フリーランス専門エージェントに紹介してもらう

ですね。


登録しておくだけで、

自分にマッチした、RubyやRuby on Railsの案件を紹介してくれます。


さらに、エージェントを複数使っておけば、より多くの案件を紹介してもらえるので、

これを利用しない手はありません。


僕が今使っているのは、



です。


中でもおすすめは下記の2つ。


1. エミリーエンジニア

  • 「常駐5日でしっかり稼ぎたい」

  • 「はじめてのフリーランスで不安」

という方の案件探しにぴったりのエージェント★

>> エミリーエンジニアに話を聞いてみる <<


2. フォスターフリーランス

  • 業界20年の超老舗で、常時5000件以上の案件を保有

>> 業界20年の超老舗、フォスターフリーランスに話を聞いてみる <<

www.malanka.tech



他の各エージェントさんについては、

下記の記事で詳しく解説しています。


www.malanka.tech


www.malanka.tech


www.malanka.tech


www.malanka.tech


参考までにエージェントさんの比較表を貼っておきますね。

エージェントの比較表

*横にスライド可

エージェント名 支払いサイト(報酬振込日) 案件保有数 案件の種類 特徴 マージンの公開
❶ギークスジョブ 25日(月末締め翌15日支払い) 非公開 常駐週5メイン
  • レンタルサーバーやクラウドサービスの割引
  • スキルアップの学習支援
  • セミナーの優先招待
  • 人間ドッグの受診割引など
  • 非公開
    ❷エミリーエンジニア 30日(月末締め翌月末日支払い) 非公開 常駐メイン
  • 利用者の4人に1人が、はじめてのフリーランス
  • 利用者の5人に1人が、年収1000万以上
  • 平均年収819万円
  • フリーランスでも利用出来る福利厚生(補償制度や健康診断など)
  • 非公開
    ❸レバテックフリーランス 30日(月末締め翌月末日支払い) 常時1100件以上 常駐メイン
  • 業界最大手
  • ベンチャー案件が豊富
  • エンジニア勉強会の開催
  • Lineでのスムーズなやりとり
  • 非公開
    ❹フォスターフリーランス 30日(月末締め翌月末日支払い) 5000件以上(非公開案件含む) 常駐週5メイン
  • 業界20年の老舗
  • 15,000人以上のフリーランスITエンジニアが登録中
  • 常時5000件以上の案件保有
  • ITエンジニアのためのセミナーやイベント開催
  • 非公開
    ❺Midworks 20日(月末締め翌20日支払い) 非公開 週5に加え、週3やリモートも豊富
  • 業界屈指の低マージン(10〜15%)
  • マージンを公開してくれるという安心感
  • 正社員同等の福利厚生
  • 交通費や書籍代の支給有
  • 10〜15%(公開)




    以上、

    • Ruby on Jetsで、dynamodb-localを実行した時に、javaのバージョンが古くて発生したエラー

    についてでした。


    このブログでは、僕がIT未経験から約1年でフリーランスエンジニアになるまでの過程、ノウハウなどを書いています。


    • フリーランスに興味がある

    • 今まさに活動している

    という方は、下記の記事で、

    • 【実体験】高卒文系が1年でRailsのフリーエンジニアになった話

    • 【週3案件豊富 正社員並の保証】フリーランスエージェント**Midworks**を使ってみた感想

    • 【10倍効率化!?】プログラマの作業が鬼捗る【8つのグッズ】

    を紹介していますので、よかったらチェックしてみてください。


    www.malanka.tech

    www.malanka.tech

    www.malanka.tech






    また、

    駆け出しエンジニアに向けてのnoteを3月17日にリリースしました。

    note.com

    活躍出来るエンジニアになるためのマインドを、

    ギュッと詰め込んだ、「実践型note」になってます。

    • 「IT転職を成功させたい!」

    という方は是非チェックしてみてください。






    最後までお読み頂きありがとうございました★

    もしよかったらTwiiterのフォローもお願いします★