当前位置: 首页 > 知识库问答 >
问题:

java-仅当从Windows的命令提示符[duplicate]运行时,未找到postgresql驱动程序

范翰海
2023-03-14

我使用Netbean 8.1和maven,该项目就像连接到postgre数据库并运行单个查询一样简单。

当我从Netbean运行项目时,我设置的System.out.println消息告诉我,与db的连接成功了,通过下面代码PostgreSQL JDBC驱动程序已注册的消息传递。

在Windows 7提示符下运行同一项目时,如:

java -jar myproject.jar

这个

        try {
            Class.forName("org.postgresql.Driver");
        } 
        catch (ClassNotFoundException e) {
            System.out.println("No PostgreSQL JDBC Driver found");
            System.exit(0);
        }
System.out.println("PostgreSQL JDBC Driver Registered!");

跳到捕获{}。

我解释不了为什么。有人能帮我吗?

编辑:如果我们能停止将此标记为重复,那就太好了。它可能是类路径的参数,但我不想使用类路径。我正在使用的另一个应用程序是这个应用程序的一个变体,它只需运行而不修改类路径,并执行完全相同的数据库连接。

一定有办法做到这一点,可能是使用pom。xml或其他我不知道的东西

EDIT2:我很确定我以前编辑过这个,解释说我找到了让程序工作的方法,而无需向Windows命令添加类路径。pom。xml是配置应用程序的关键。不,这次“重复答案”对我没有帮助。

共有2个答案

乐正宜人
2023-03-14

然而,在Windows 7上,它比这要复杂一点。问题是,如果您只是运行cmd并尝试启动或停止服务,您很可能会收到以下错误消息:系统错误5已发生。访问被拒绝。

为了克服这个问题,您需要以管理员的身份启动一个“DOS框”,因为据我所知,在一个权限较少的账户下打开的命令提示符窗口中,不能以管理员的身份运行一个命令(在窗口中没有su和sudo命令)。

一个选项是单击“开始”按钮,在“搜索程序和文件”框中键入cmd,然后按Ctrl-Shift-Enter键,而不是只按Enter键。这将启动一个具有管理权限的“DOS盒”。现在,在这个DOS盒子里,您可以运行以下命令之一(用实际版本的PostgreSQL替换“9.1”):NET START PostgreSQL-9.1(对于32位版本)NET STOP PostgreSQL-9.1(对于32位版本)NET START PostgreSQL-x64-9.1(对于64位版本)NET STOP PostgreSQL-x64-9.1(对于64位版本)来启动和停止PostgreSQL。

孟意致
2023-03-14

它不起作用的原因是您忘记在命令中设置类路径。PostgreSQL驱动程序在jar中提供。所以您必须传递这个jar位置的路径。因为您正在使用,所以jars位于~/. m2/repository中。

因此,进入该目录并搜索驱动程序,并将驱动程序位置作为参数传递给命令行:

java -cp $LOCATION_POSTGRESQL_DRIVER -jar myproject.jar
 类似资料:
  • javac-cp“lib/*”src/com/company/main.java 在myproject/src中,我尝试使用: JAVA-CP。COM/公司/主要 C:\myproject\src>javac-cp“lib/*”com/company/main.java C:\myproject\src>java-cp.;“lib/*”com/company/main 现在,代码编译和执行没有任何

  • 我遇到了从命令提示符运行java程序的问题。我有一个名为DataRecover的java文件,还有一个名为Triple的java文件。现在,当我在命令提示符下运行javac triple.java时,它会执行它应该执行的操作。但是,当我运行javac DataRecover.java时,它会出现这样的错误消息:“线程”main“java.lang.noClassDeffounderRror:Dat

  • 我最近开始学习Java编程语言的基础知识。为了在命令提示符下运行我的程序,我下载了java开发工具包(也称为JDK),并将我的Windows10系统路径设置为: C:\Program Files\java\jdk-9.0.1\bin;C:\Program Files\java\jre-9.0.1\bin 在用以下格式编写了一个简单的Hello World程序后: 并在命令提示符下使用 ,然后写 j

  • 我刚开始咕噜咕噜的。我正在尝试在我的Mac OSX Lion上配置Grunt。 我按照这里的说明,然后创建了一个包含下面文件的项目文件夹。当我尝试通过在终端中键入“grunt”来运行时,我会得到。我还修改了paths,希望添加路径可以使任务运行器工作,但它仍然不能工作。有人能帮忙吗?

  • 问题内容: 我试图弄清楚如何在Windows 7上使用命令提示符运行Python程序。(我现在应该已经弄清楚了……) 当我在命令提示符下键入“ python”时,出现以下错误: 无法将“ python”识别为内部或外部命令,可操作程序或批处理文件。 我在寻求帮助时发现的第一个地方是该站点:http : //docs.python.org/faq/windows.html#how- do-i-run

  • 我正在尝试使用AWS codebuild生成一个简单的docker应用程序,但遇到一个错误,其中找不到AWS命令: 我有一个超级简单的docker文件,它构建了一个简单的express应用程序: 我有一个超级简单的构建规范。yml构建docker容器并将其推送到aws注册表: 然而一旦运行,它抛出上面张贴的错误^^我不确定为什么没有找到aws cli utils?这里的指南: http://doc