【问题标题】:How to use an Executable JAR file in my project?如何在我的项目中使用可执行 JAR 文件?
【发布时间】:2013-05-30 16:02:59
【问题描述】:

我创建了一个 .jar 文件,其中包含我的签名数字证书,我想在我的项目中使用该文件,目前我该如何使用它,它位于 &JAVA_HOME/jre7/lib/security 文件夹中。

提前感谢您的帮助:)。

【问题讨论】:

  • 您想读取位于 JAR 中的文件?
  • 是的,我想阅读 JAR 中的内容

标签: jar


【解决方案1】:

如果 JAR 在您的类路径中,并且文件是位于根目录下的“foo.cert”,则执行此操作...

InputStream is = this.getClass().getResourceAsStream("/foo.cert");
CertificateFactory factory = CertificateFactory.getInstance("X.509");  
X509Certificate cert = (X509Certificate) factory.generateCertificate( is);  

https://stackoverflow.com/a/4548791/791406

【讨论】:

  • 为什么会出现此错误?'code' 原因:java.security.InvalidAlgorithmParameterException:在 java.security.cert.PKIXParameters.setTrustAnchors 中的 trustAnchors 参数必须非空(未知来源)在 java.security.cert.PKIXParameters.(Unknown Source) at java.security.cert.PKIXBuilderParameters.(Unknown Source) ... 61 更多
  • 已编辑答案,您需要提供更多信息,您是否尝试加载 509 证书?见上,试试看
  • 我正在尝试使用 API 和 Ssl 安全性进行连接
  • 这是一个完全不同的问题。您没有提供有关您正在做什么的足够详细信息,但您希望人们提供帮助,这是不可能的。
【解决方案2】:
  static Connection DBConnectionstring()
    {       
        Connection con = null;
        String conUrl = "jdbc:sqlserver://localhost:1433; databaseName=paytest; user=My-PC; password=; integratedSecurity=true; encrypt=true; trustStore=truststore.jks;trustStorePassword=pass; hostNameInCertificate=certificatekey;";

        try 
        {
                 con = DriverManager.getConnection(conUrl);                  
                 JOptionPane.showMessageDialog(null,"Connection is open!","Connection",JOptionPane.WARNING_MESSAGE);

                 }
        catch (SQLException e)
        {

            e.printStackTrace();
        }       
        return con;

    }//connection string method ends 

这是我有连接字符串和其他 sql 命令的类

    import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import javax.net.ssl.*;
import java.io.*;
import java.net.*;
import java.security.*;

import javax.swing.JOptionPane;
public abstract class ConnectionDB 
{   


    public static void main(String[] args)
    {   

        try {                        
            insertRecordIntoDbUserTable();
            selectfromdb();
        } 
        catch (SQLException e)
        {

            System.out.println(e.getMessage());

        }
}

    private static void GuiContain()  
    {

    }

    private static void insertRecordIntoDbUserTable() throws SQLException
    {
        Connection con = null;
        Statement statement = null;
        String insertTableSQL = "INSERT INTO LoginDetails" + "(Username, Password) " + "VALUES" + "('username','pass1')";
        try 
        {
            con = DBConnectionstring();
            statement = con.createStatement(); 
            System.out.println(insertTableSQL);         
            statement.executeUpdate(insertTableSQL);            
            //System.out.println("Record's inserted into Login Details table!");
            JOptionPane.showMessageDialog(null,"Your Data has been Inserted","Data Inserted",JOptionPane.WARNING_MESSAGE);
        } 
        catch (SQLException e)
        {

            System.out.println(e.getMessage()); 
        } 
        finally 
        {

            if (statement != null)
            {
                    statement.close();
                //System.out.println("XXXXX...Statement is terminated..XXXXX");
                JOptionPane.showMessageDialog(null,"Statement is closed","Statement",JOptionPane.WARNING_MESSAGE);
            }

            if (con != null)
            {
                con.close();
                //System.out.println("Connection is Closed!!..");
                JOptionPane.showMessageDialog(null,"Connection is closed!","Connection",JOptionPane.WARNING_MESSAGE);
            }

        }


    }

    private static void selectfromdb() throws SQLException
    {       
        Statement stmt = DBConnectionstring().createStatement();
        ResultSet rs = stmt.executeQuery("SELECT Username,Password FROM LoginDetails");
        while (rs.next())
        {
              String lastName = rs.getString("Username");
              String Pass = rs.getString("Password");
              System.out.println(lastName + "" + Pass + "\n");

            }       
    }

     static Connection DBConnectionstring()
    {       
        Connection con = null;
        String conUrl = "jdbc:sqlserver://localhost:1433; databaseName=paytest; user=my-PC; password=; integratedSecurity=true;";

        try 
        {
                 con = DriverManager.getConnection(conUrl);

                 JOptionPane.showMessageDialog(null,"Connection is open!","Connection",JOptionPane.WARNING_MESSAGE);

                 }
        catch (SQLException e)
        {

            e.printStackTrace();
        }       
        return con;

    }


    }

【讨论】:

  • 抱歉@Raffian 之前提供的材料不足,现在我已经更新了我所拥有的。我希望这会有所帮助,并告诉我您还需要什么其他信息。
猜你喜欢
  • 1970-01-01
  • 2013-06-13
  • 2013-09-21
  • 2014-02-17
  • 2012-02-27
  • 1970-01-01
  • 1970-01-01
  • 2010-12-06
  • 1970-01-01
相关资源
最近更新 更多