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

找不到或加载Java主类

薛宇
2023-03-14

我有下面的代码,我正在尝试创建一个到数据库的连接。当我运行命令:java-cp时,我得到一个错误“无法找到或加载java中的main class”。翁爪哇

package com.onjava;
import java.sql.*;

import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.sql.*;

import javax.naming.Context;

public class onjava extends HttpServlet {

  private DataSource datasource;

  public void init(ServletConfig config) throws ServletException {
    try {
      // Look up the JNDI data source only once at init time
      Context envCtx = (Context) new InitialContext().lookup("java:comp/env");
      datasource = (DataSource) ((InitialContext) envCtx).lookup("jdbc/testdb");
    }
    catch (NamingException e) {
      e.printStackTrace();
    }
  }

  private Connection getConnection() throws SQLException {
    return datasource.getConnection();
  }

  public void doGet (HttpServletRequest req, HttpServletResponse res) throws ServletException {
    Connection connection=null;
    try {
      connection = getConnection();
      //..<do JDBC work>..
      if (connection != null) {

            String message = "You are connected!";
            System.out.println(message);


        } else {
            System.out.println("Failed to make connection!");
        }
    } 
    catch (SQLException sqlException) {
      sqlException.printStackTrace();
    }
    finally {
      if (connection != null) 
        try {connection.close();} catch (SQLException e) {}
      }
    }
  }
package src;

import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Wrapper;
import java.util.Hashtable;
import java.util.Properties;
import java.io.*;
import javax.activation.DataSource;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;

import oracle.jdbc.pool.OracleDataSource;

public class onjava {

    public static void main(String[] argv) throws SQLException, NamingException {

        Properties prop = new Properties();
        System.setProperty(Context.INITIAL_CONTEXT_FACTORY,"org.apache.naming.java.javaURLContextFactory");
        Context initialContext = new InitialContext(prop);
        if ( initialContext == null){
              System.out.print("JNDI problem. Cannot get InitialContext.");
        } else {System.out.print("NO JNDI problemb ");}

        // Get DataSource
        Context envContext = (Context)initialContext.lookup("java:/comp/env");
        DataSource ds = (DataSource)envContext.lookup("jdbc/testdb");



        System.out.println("\n -------- Oracle JDBC Connection Testing ------");

        try {



            Connection jdbcConnection = ((Statement) ds).getConnection();
            OracleDataSource ods = ((Wrapper) ds).unwrap(OracleDataSource.class);
            jdbcConnection.close();

        } catch (SQLException e) {

            System.out.println("Connection Failed! Check output console");
            e.printStackTrace();
            return;

        }

        String message = "You are connected!";
        System.out.println(message);

    }

}

共有1个答案

葛鸿熙
2023-03-14

好的,根据你告诉我的,你需要在你的项目中附加一个主类。这意味着回到您的编译器并创建main方法。要添加代码,您需要在主类中执行以下操作,我将其称为onJavaMain:

public class onjavaMain{

//Main method is this
public static void main(String[] args)
       {
       //create variable of your onjava class
       onjava onJavaConnectToDatabase = new onjava();
       onJavaConnectToDatabase.doGet(argument1,argument2);
       }
}

现在这还不是完整的答案,但这将使您了解为了在命令行中运行项目需要做什么。

 类似资料:
  • 我还尝试将我的类路径设置为'C:\ProgramFiles\java\jre1.8.0_144\lib\rt.jar',尽管我读到这不是必需的。 从class01.java创建class01.class没有问题 不过,当我尝试运行程序时

  • 我认为这个错误是由于路径或类路径不正确造成的,但是我在下载Eclipse Neon时使用Java几个月没有问题,因为我设置了路径。我还发现在包中也会导致错误,所以我在包外创建了类,但仍然得到了错误。 Windows7上的Path和ClassPath环境变量是: 路径变量名:C:\ProgramFiles\Java\JDK1.8.0_101\bin;C:\ProgramFiles\Java\JRE1

  • 问题内容: 我在编译和运行Java代码时遇到麻烦,目的是允许我将Java与模拟建模包Vensim的共享对象接口。 以下代码编译没有错误: 但是,当我尝试运行以下命令时: 我收到以下错误:“错误:找不到或加载主类SpatialModel”。我的SpatialModel.java代码确实包含一个“主要”方法(如下),所以我不确定是什么问题-有人可以帮我吗?谢谢。 问题答案: 你必须确保将文件的位置添加

  • 我正试图在Linux Mint上设置我的开发环境,因为我的整个计算机由于windows的一些问题而不幸地重新安装了。对于Java程序的开发,我使用NetBeans。我allready安装了所有依赖项和外部库。但是,当我试图运行该程序时,我会得到以下输出: 我已经尝试过让它与openJDK、orcacle(普通)JDK、Ubuntu 15.04、Linux Mint、Netbeans 8.0.2、N

  • 我通过删除诸如、和之类的本地目录来清理整个项目,并在Android Studio中选择。现在,执行命令将得到以下输出: 不用说,我删除的太多了,问题是怎么能再修复呢?你有什么办法解决这个问题吗?

  • 我安装了intellij,但它一直给我错误: 我检查了许多类似问题的答案,但没有一个奏效。我尝试运行的程序: 未创建“Out”文件夹。intellij在展开“...”后使用的完全运行命令 “C:\Program Files\java\jdk1.8.0_181\bin\java.exe”“-javaagent:E:\Program Files\JetBrains\IntelliJ IDEA Comm

  • 我试图构建build.xml文件来构建ElasticSearchProject。简单地说,构建文件称为gradle构建,然后运行测试。然而,我得到了关于Gradle的错误。这是我第一次使用Gradle。错误是 谢谢