在这里输入代码
我有webapplication和h2database作为docker容器。我有docker组合yml文件所有设置。现在,我需要初始化这个数据库(h2database)。但我做不到。当我进入h2database docker容器时,我看到docker-entrypoint-initdb.d/initdb.sh在这个initdb.sh中添加了我的脚本
#!/bin/bash
java -cp h2-1.4.190.jar org.h2.tools.RunScript \
-script /App1/BasePl/sql-scripts/h2/common-scripts/BasePl-schema-h2.sql \ -url "jdbc:h2:http://localhost/code1/Demo2./BasePl"
Error: Could not find or load main class org.h2.tools.RunScript
version: '3'
services:
baseplapplication:
build:
context: .
dockerfile: Dockerfile
environment:
BASEPL_HOME: "/usr/local/BASEPL"
ports:
- "882:8080"
volumes:
- basepl_data:/var/bio
depends_on:
- db
links:
- db
db:
image: "buildo/h2database"
volumes:
- ./dumps/init.sh:/docker-entrypoint-initdb.d/initdb.sh
- h2data:/var/lib/h2database
ports:
- "8082:8082"
volumes:
basepl_data:
h2data:
现在,当我运行docker-compose命令时将创建initdb,因此我需要进入数据库(db)容器中的initdb.sh位置,然后将脚本#!/bin/bash java-cp h2-1.4.190.jar org.h2.tools.runscript\-script/app1/basepl/sql-scripts/h2/common-scripts/basepl-schema-h2.sql\-url“jdbc:h2:http://localhost/code1/demo2./basepl”。然后如何将位于桌面上的h2-1.4.190.jar文件放到数据库(db)容器中的那个位置。我所要做的就是在docker编写期间对docker数据库运行一个脚本来填充(初始化)docker数据库。拜托,我是docker新手,所以帮帮我
此错误表示java没有找到h2-1.4.190.jar
。
首先,您需要将h2-1.4.190.jar
放在initdb.sh
的同一个文件夹中,在您的示例中是docker-entrypoint-initdb.d
。然后,在dockerfile
中,workdir
我猜不是docker-entrypoint-initdb.d
。
然后,当执行java-cp h2-1.4.190.jar
时,它打算在workdir
中查找jar,而不是在docker-entrypoint-initdb.d
中查找jar。例如。如果Workdir
是/root/
,那么它将尝试在/root
中查找h2-1.4.190.jar
,而不是在存储脚本的文件夹中,因此您无法找到JAR。
#!/bin/bash
dir=$(dirname "$0")
java -cp "$dir/h2-1.4.190.jar" org.h2.tools.RunScript \
-script /App1/BasePl/sql-scripts/h2/common-scripts/BasePl-schema-h2.sql \ -url "jdbc:h2:http://localhost/code1/Demo2./BasePl"
dir=$(dirname“$0”)
将确保它是当前运行脚本的同一个文件夹,而不是启动脚本的文件夹。
另外,您可以将绝对dir用于h2-1.4.190.jar
,这也是可以的。
问题内容: 我在编译和运行Java代码时遇到了麻烦,该代码旨在允许我将Java与模拟建模包Vensim的共享对象接口。 以下代码编译没有错误: 但是,当我尝试运行以下命令时: 我收到以下错误:“错误:找不到或加载主类SpatialModel”。我的SpatialModel.java代码确实包含一个“主要”方法(如下),所以我不确定是什么问题- 有人可以帮我吗?谢谢。 问题答案: 您必须确保将文件的
我一直在搜索这一点,但没有任何帮助,我试图运行的主要类,但不断得到一个错误。我负责这个 我的主文件位于中 我尝试了多个命令,但一无所获。 我想运行位于中的主类,但总是出现此错误,请提供帮助吗?
我有一个名为TestInventory.java的类,其他类在默认包中,都在src文件夹中。然而,当我运行它时,我得到: 错误:找不到或加载主类
问题内容: 我试图将HelloWorld放在.jar文件中并运行它,但是它不起作用。我创建了Java文件并在程序中键入内容,然后用cmd编写: 而且有效。然后我进入 得到了输出 然后我进入 第一行有效,而第二行却给我一个错误: 当我尝试使用64位jre7 \ bin,jdk1.7.0_51 \ bin,jdk1.7.0_51 \ jre \ bin中的java.exe文件打开它时,我得到的输出是(
问题内容: 我通过cmd.exe在Windows 7上使用Java SDK 1.7。直到几个小时前,一切突然都无法正常运行,突然之间我无法运行编译的类文件,标题中始终显示错误。 我似乎能够编译My.java文件,但是无法运行生成的类文件(My.class)。我经常收到错误“错误:找不到或加载主类My.class”。我已经尝试了多个其他类文件,都导致了相同的问题。 如果您想知道,我的“路径”环境变量
问题内容: 我在编译和运行Java代码时遇到麻烦,目的是允许我将Java与模拟建模包Vensim的共享对象接口。 以下代码编译没有错误: 但是,当我尝试运行以下命令时: 我收到以下错误:“错误:找不到或加载主类SpatialModel”。我的SpatialModel.java代码确实包含一个“主要”方法(如下),所以我不确定是什么问题-有人可以帮我吗?谢谢。 问题答案: 你必须确保将文件的位置添加