Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用算法显示所有JAC安全提供商及其服务类型_Java_Security_Provider - Fatal编程技术网

Java 使用算法显示所有JAC安全提供商及其服务类型

Java 使用算法显示所有JAC安全提供商及其服务类型,java,security,provider,Java,Security,Provider,我想创建一个简单的java代码,显示所有安全提供程序,包括: 名字 信息 服务类型 算法 Main Activity.java import java.io.ObjectInputStream.GetField; 导入java.security.Provider; 导入java.security.Provider.Service; 导入java.security.security; 公开课活动{ 公共静态void main(字符串[]args){ System.out.println(“可用

我想创建一个简单的java代码,显示所有安全提供程序,包括:

  • 名字
  • 信息
  • 服务类型
  • 算法
Main Activity.java
import java.io.ObjectInputStream.GetField;
导入java.security.Provider;
导入java.security.Provider.Service;
导入java.security.security;
公开课活动{
公共静态void main(字符串[]args){
System.out.println(“可用的提供者是:”);
Provider[]providerList=Security.getProviders();
对于(int i=0;i

在第二个for循环之前,我需要初始化服务,以便能够调用服务类型和算法。

您需要第二个循环位于第一个循环中,因为您需要当前提供程序,以便可以调用其
getServices
方法。比如:

import java.security.Provider;
import java.security.Provider.Service;
import java.security.Security;
import java.util.Set;

public class MainActivity
{
  public static void main(String[] args)
  {
    Provider [] providerList = Security.getProviders();
    for (Provider provider : providerList)
     {
       System.out.println("Name: "  + provider.getName());
       System.out.println("Information:\n" + provider.getInfo());

       Set<Service> serviceList = provider.getServices();
       for (Service service : serviceList)
        {
          System.out.println("Service Type: " + service.getType() + " Algorithm " + service.getAlgorithm());
        }
     }
  }
}
导入java.security.Provider;
导入java.security.Provider.Service;
导入java.security.security;
导入java.util.Set;
公开课活动
{
公共静态void main(字符串[]args)
{
Provider[]providerList=Security.getProviders();
对于(提供程序:提供程序列表)
{
System.out.println(“Name:+provider.getName());
System.out.println(“信息:\n”+provider.getInfo());
设置serviceList=provider.getServices();
for(服务:服务列表)
{
System.out.println(“服务类型:”+Service.getType()+“算法”+Service.getAlgorithm());
}
}
}
}

您需要第二个循环位于第一个循环的内部,因为您需要当前的提供者,这样您就可以调用它的
getServices
方法。比如:

import java.security.Provider;
import java.security.Provider.Service;
import java.security.Security;
import java.util.Set;

public class MainActivity
{
  public static void main(String[] args)
  {
    Provider [] providerList = Security.getProviders();
    for (Provider provider : providerList)
     {
       System.out.println("Name: "  + provider.getName());
       System.out.println("Information:\n" + provider.getInfo());

       Set<Service> serviceList = provider.getServices();
       for (Service service : serviceList)
        {
          System.out.println("Service Type: " + service.getType() + " Algorithm " + service.getAlgorithm());
        }
     }
  }
}
导入java.security.Provider;
导入java.security.Provider.Service;
导入java.security.security;
导入java.util.Set;
公开课活动
{
公共静态void main(字符串[]args)
{
Provider[]providerList=Security.getProviders();
对于(提供程序:提供程序列表)
{
System.out.println(“Name:+provider.getName());
System.out.println(“信息:\n”+provider.getInfo());
设置serviceList=provider.getServices();
for(服务:服务列表)
{
System.out.println(“服务类型:”+Service.getType()+“算法”+Service.getAlgorithm());
}
}
}
}

@grep-449我尝试了您的答案,但它给了我一个错误,即:提供商无法解决如何修复此错误??我只给出了核心代码。我已经编辑了答案以包含整个程序。它工作得很好。这是我写的错误谢谢@grep-449我尝试了你的答案,但它给了我一个错误,即:提供商无法解决如何修复此错误??我只给出了核心代码。我已经编辑了答案,包含了整个程序。它工作得很好。这是我写的错误。谢谢