You are here
Home > IT > nginxのアクセスログを解析してみる(metabase編)




無料版の Host It myselfをGet Startしてやるぜ!

dockerとjarがある。ローカルにjava入ってるし(java 15)、dockerは重そうだからjarで行ってみよう!

java -version

openjdk version "15.0.1" 2020-10-20
OpenJDK Runtime Environment Corretto- (build 15.0.1+9)
OpenJDK 64-Bit Server VM Corretto- (build 15.0.1+9, mixed mode, sharing)

cd ~/Downloads/
java -jar metabase.jar
Warning: environ value /usr/local/Cellar/openjdk/14.0.1 for key :java-home has been overwritten with /Library/Java/JavaVirtualMachines/amazon-corretto-15.jdk/Contents/Home
WARNING: sun.reflect.Reflection.getCallerClass is not supported. This will impact performance.
2021-04-01 16:35:03,347 INFO metabase.util :: Maximum memory available to JVM: 4.0 GB
2021-04-01 16:35:11,257 INFO util.encryption :: Saved credentials encryption is DISABLED for this Metabase instance. 🔓
 For more information, see
Exception in thread "main" java.lang.ExceptionInInitializerError


Encrypting your database connection details at rest


openssl rand -base64 32

 MB_ENCRYPTION_SECRET_KEY="xxxxxxx"  java -jar metabase.jar


Caused by: java.lang.ClassNotFoundException: jdk.nashorn.api.scripting.JSObject

javap  jdk.nashorn.api.scripting.JSObject
エラー: クラスが見つかりません: jdk.nashorn.api.scripting.JSObject
(Metabase requires that you have Java 8 or higher available on your system. We have run Metabase with both the OpenJDK and Oracle JDK, so feel free to use either.)を信じた私がアホやった。。。

Java SE Development Kit 8 Downloads
java -version
java version "1.8.0_281"
Java(TM) SE Runtime Environment (build 1.8.0_281-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.281-b09, mixed mode)

javap  jdk.nashorn.api.scripting.JSObject
Compiled from ""
public interface jdk.nashorn.api.scripting.JSObject {
  public abstract java.lang.Object call(java.lang.Object, java.lang.Object...);
  public abstract java.lang.Object newObject(java.lang.Object...);
  public abstract java.lang.Object eval(java.lang.String);
  public abstract java.lang.Object getMember(java.lang.String);
  public abstract java.lang.Object getSlot(int);
  public abstract boolean hasMember(java.lang.String);
  public abstract boolean hasSlot(int);
  public abstract void removeMember(java.lang.String);
  public abstract void setMember(java.lang.String, java.lang.Object);
  public abstract void setSlot(int, java.lang.Object);
  public abstract java.util.Set<java.lang.String> keySet();
  public abstract java.util.Collection<java.lang.Object> values();
  public abstract boolean isInstance(java.lang.Object);
  public abstract boolean isInstanceOf(java.lang.Object);
  public abstract java.lang.String getClassName();
  public abstract boolean isFunction();
  public abstract boolean isStrictFunction();
  public abstract boolean isArray();
  public abstract double toNumber();