【问题标题】:Unable to load multiple class files in java无法在java中加载多个类文件
【发布时间】:2020-10-02 03:00:03
【问题描述】:

我一直在尝试运行以下代码。当我尝试运行它时,主类不会加载或其他 jar 文件不会

这是我的代码

import java.sql.*;
import java.util.Scanner;
import com.teradata.jdbc.TeraDriver;

public class TeradataSample
{

    public static void main(String[] args) throws Exception 
    {
        String connurl="jdbc:teradata://path";

        Scanner myObj = new Scanner(System.in);  // Create a Scanner 

        System.out.println("Enter username");
        String userName = myObj.nextLine();

        System.out.println("Enter password");
        String psswd = myObj.nextLine();

        Connection conn=DriverManager.getConnection(connurl, userName, psswd);

        System.out.println(" Connected to Teradata. \n");

        System.out.println("Enter your query");
        String query = myObj.nextLine();

        Statement stmt=conn.createStatement();
        System.out.println("\n Statement object created. \n");

        ResultSet rs=stmt.executeQuery(query);
        while(rs.next()) 
        {
            String col1=rs.getString(1);
            System.out.println("col1="+col1);
        }

        stmt.close();
        System.out.println("\n Statement object closed. \n");

        conn.close();
        System.out.println(" Connection to Teradata closed. \n");
    }
}

在编译时,我使用了

javac TeradataSample.java

我收到以下错误

error: package com.teradata.jdbc does not exist
import com.teradata.jdbc.TeraDriver;
                        ^

执行, 所以我尝试加载 terajdbc4.jar 的类路径,它实际上与程序 Teradatasample.java 位于同一目录中。

javac -cp . TeradataSample.java

没有错误

为了执行, 我试过了。

java TeradataSample

运行给我错误

Error: Could not find or load main class TeradataSample 

所以我想到了包含类路径并尝试了这个

java -cp . TeradataSample

现在它给了我以下错误

Exception in thread "main" java.sql.SQLException: No suitable driver found for jdbc:teradata://path
        at java.sql.DriverManager.getConnection(Unknown Source)
        at java.sql.DriverManager.getConnection(Unknown Source)
        at TeradataSample.main(TeradataSample.java:38)

它正在加载主类而不是 jar 文件。

因此我尝试了这个 java -cp .;C:\Test\* TeradataSample

回到第一格,我得到了以下错误

Error: Could not find or load main class TeradataSample 

我无法设置类路径变量,因为我没有管理员权限。

请帮我解决这个问题。

【问题讨论】:

  • 你真的把它们添加到你的类路径了吗?
  • 如何将-jar terajdbc4.jar 添加到您的javacjava 命令中。
  • 您的 jar 文件是否包含您正在使用的特定数据库的驱动程序?
  • @Stultuske 我无法将它们添加到类路径,因为我没有管理员权限
  • 好吧,这就是它不起作用的原因

标签: java jdbc jar classpath teradata


【解决方案1】:

您需要在 -cp 选项的参数中列出 jar 文件,如下所示:

java -cp .;terajdbc4.jar TeradataSample

【讨论】:

  • 当我向 -cp 提供超过 1 个参数时,它无法识别这两个参数。我收到错误:无法找到或加载主类 TeradataSample
  • 在 Windows 上,使用分号分隔符:java -cp .;terajdbc4.jar TeradataSample 在 Linux、Mac 或其他系统上,使用冒号分隔符:java -cp .:terajdbc4.jar TeradataSample
猜你喜欢
  • 1970-01-01
  • 2021-09-02
  • 1970-01-01
  • 2013-11-30
  • 2011-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多