EditPlus苦战 dynamic的API

需要在Java环境中调用Dynamic 的API,想写一个程序测试一下,就先在网上找了一段实例代码。因为觉得简单所以就用EditPlus。
1.找了一个JDK的免安装压缩包,解压缩在c:\JDK
2.配置EDIplus的编译环境
在“工具”--“配置用户工具”中创建一个组“JAVA编译和执行”,然后添加菜单“编译”,命令指向javac.exe,参数为$(FileName),初始目录为$(FileDir)。
同样创建菜单“执行”,命令指向java.exe,参数为$(FileNameNoExt),初始目录为$(FileDir)。
3.这个示例程序用了很多组件包,
import com.microsoft.aad.adal4j.AuthenticationContext;
import com.microsoft.aad.adal4j.AuthenticationResult;
import com.microsoft.aad.adal4j.ClientCredential;
import net.sf.json.JSONObject;
import okhttp3.*;
所以需要先下载已知的组件包
https://www.mvnjar.com/com.microsoft.azure/adal4j/jar.html
https://sourceforge.net/projects/json-lib/files/json-lib/json-lib-2.4/json-lib-2.4-jdk15.jar/download
4.将下载后的jar包拷贝到 C:\JDK\jre\lib\ext目录下
5、执行编译。
出现错误:Crminterface.java:52: 无法访问 okio.ByteString  未找到 okio.ByteString 的类文件
            RequestBody body = RequestBody.create(mediaType, "{" +
原因是import okhttp3还不行,好需要依赖包okio。同样方式下载jar包,解决

6.执行错误1:
Exception in thread "main" java.lang.UnsupportedClassVersionError: com/microsoft/aad/adal4j/AuthenticationContext : Unsupported major.minor version 51.0
原因是JDK版本太低,于是重新下载安装JDK1.8
https://www.oracle.com/cn/java/technologies/javase/javase-jdk8-downloads.html
7.执行错误2:
再次编译执行,出现新的错误
com.nimbusds.oauth2.sdk.ParseException,还是缺少依赖的jar包,那继续下载
https://www.mvnjar.com/com.nimbusds/oauth2-oidc-sdk/2.14.1/detail.html
8.执行错误3:
编译通过,但是运行错误:
Exception in thread "main" java.lang.NoClassDefFoundError: com/nimbusds/oauth2/sdk/JWTBearerGrant
        at Crminterface.main(Crminterface.java:30)
Caused by: java.lang.ClassNotFoundException: com.nimbusds.oauth2.sdk.JWTBearerGrant
找了一圈都没有找到,后来发现原来自己下载的版本太老了(2.14),找了一个5.0版本下载。
https://www.mvnjar.com/com.nimbusds/nimbus-jose-jwt/4.40/detail.html
https://www.javadoc.io/doc/com.nimbusds/oauth2-oidc-sdk/5.0/com/nimbusds/oauth2/sdk/JWTBearerGrant.html#constructor_summary
9.执行错误4:
过了:上一关,又出现新问题
Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
        at com.microsoft.aad.adal4j.AuthenticationContext.(AuthenticationContext.java:64)
原因还是缺少依赖包,原来已经下了,打开一看,确实少了level这个类,重新下载。
10.执行错误5:
还有问题:
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
Exception in thread "main" java.lang.NoClassDefFoundError: net/minidev/json/JSONAware
需要导入json-smart-1.1.1.jar文件
跑去http://www.java2s.com/Code/Jar/j/Downloadjsonsmart111jar.htm下载一个,终于不再缺少包了。
10.执行错误6:
还是有出现新问题:
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
原来是因为sl4j和log4j的不兼容导致的,
最后用了log4j-1.2.17.jar  slf4j-api-1.7.7.jar slf4j-log4j12-1.7.7.jar 三个搞定。
11.执行错误7:
新问题继续出现。
log4j:WARN No appenders could be found for logger (com.microsoft.aad.adal4j.AuthenticationAuthority).
原因是没有配置文件log4j.properties的路径问题。
在Main中加入如下代码:
    BasicConfigurator.configure();
程序运行正常运行了。
0 [pool-1-thread-1] INFO com.microsoft.aad.adal4j.AuthenticationAuthority  - [Correlation ID: 80191b1c-87dd-44a6-a62a-1731133083e6] Instance discovery was successful
但是没有结果啊!
11.执行错误8:
使用   catch (ExecutionException e) 
{ System.out.println(e.getMessage());}
奶奶的,居然还缺少组件包。
java.lang.NoClassDefFoundError: javax/mail/internet/ParseException
于是下载了mail-1.4.jar,搞定。
12.执行错误9:
继续出现错误:
f4cf909b5ee] Execution of class com.microsoft.aad.adal4j.AcquireTokenCallable failed.
java.lang.ClassCastException: java.util.Collections$SingletonList cannot be cast to java.lang.String
这个简直无从下手了,我投降了,我先不玩还不行吗!等我找到牛刀再和你玩。

你可能感兴趣的:(编程体验,Cloud,editplus,java)