Command line 如何编译和运行H2 TriggerSample

Command line 如何编译和运行H2 TriggerSample,command-line,triggers,h2,Command Line,Triggers,H2,我将TriggerSample.java复制到此目录。然后: javac-cph2-1.3.168.jar TriggerSample.java 创造 TriggerSample$MyTrigger.class。。。而且。。。TriggerSample.class 然后: java触发器示例 说: 也不适用于: java org.h2.samples.TriggerSample java org/h2/samples/TriggerSample 如何从命令行运行该示例?这是一个常见的Java问题

我将TriggerSample.java复制到此目录。然后:

javac-cph2-1.3.168.jar TriggerSample.java

创造

TriggerSample$MyTrigger.class。。。而且。。。TriggerSample.class

然后: java触发器示例

说:

也不适用于:

java org.h2.samples.TriggerSample

java org/h2/samples/TriggerSample


如何从命令行运行该示例?

这是一个常见的Java问题。类
TriggerSample
的包名是
org.h2.samples
。您应该使用目录名
org/h2/samples

  • 创建一个目录org/h2/samples

    mkdir org/h2/samples

  • 将文件
    TriggerSample.java
    移动到该目录

  • javac-cp h2-1.3.168.jar org/h2/samples/TriggerSample.java

  • 然后跑

    java-cph2-1.3.168.jar:。org.h2.samples.TriggerSample

或者:删除文件
TriggerSample.java

的包声明,为什么不使用IDE(Eclipse或类似产品)?
Exception in thread "main" java.lang.NoClassDefFoundError: TriggerSample (wrong name: org/h2/samples/TriggerSample)
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
        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)