是的,从你的描述来看,似乎有一些事情让你感到困惑。
首先,数据库通常作为服务器运行,有多个客户端连接到它们,从而允许共享它们的内容。当您启动 Java DB 时,您也就启动了 Java DB 数据库服务器。
也就是说,轻量级数据库(例如 Java DB)可以以嵌入式模式运行,如下所示here。请记住,您用derby.system.home
属性将需要包含数据库文件,如果没有,您也需要以编程方式创建它。
其次,有多种方法可以在 IDE 之外运行 Java 应用程序,但 jar 本身不能像 Windows 中的 exe 文件那样执行。
最简单的方法是调用 java 可执行文件,传递必要的类路径和包含 main 方法的类的名称。例如,如果我有一个名为com.example.Application
已编译到目录中C:\dev\example\classes
以下命令行将运行该应用程序:
java -cp C:\dev\example\classes com.example.Application
如果存在对外部库的依赖关系(就像您在 Derby JDBC 驱动程序上的情况一样),那么这些也需要包含在类路径中,从而导致类似以下内容:
java -cp C:\dev\example\classes;C:\dev\lib\derby.jar com.example.Application
Java启动器上有全套文档here.
现在,回到罐子。就像我说的,jar 是不可执行的,但有一些东西被称为“可执行 jar”。这与任何 jar 相同,除了清单中添加了一些特殊内容来指定应用程序入口点或主类以及类路径(如所述)here.
一旦在 jar 的清单中指定了主类和类路径,以下命令行将运行该应用程序:
java -jar C:\dev\example.jar
您甚至可以将 jar 扩展名与 java exe 关联起来,双击该 jar 将导致应用程序启动(尽管在开发计算机上,将 jar 扩展名与 WinZip 或类似的关联以便打开该 jar 可能更有用)。