在我的项目中,下面的代码示例在没有ice4j包的情况下工作:
import javax.sdp.*;
public class Hello
{
public static void main(String[] args) throws Throwable
{
SdpFactory factory = SdpFactory.getInstance();
}
}但是如果我像下面这样包含ice4j包:
apply plugin: 'java-library'
repositories {
google()
jcenter()
}
jar {
manifest {
attributes 'Main-Class': 'Hello'
}
from {
configurations.compile.collect{it.isDirectory()?it:zipTree(it)}
}
}
dependencies {
compile group: 'javax.sdp', name: 'nist-sdp', version: '1.0'
compile group: 'org.jitsi', name: 'ice4j', version: '1.0'
}
sourceCompatibility = "7"
targetCompatibility = "7"在gradle中添加ice4j包,然后构建没有问题,但如果使用以下命令运行:
java -jar build/libs/Hello.jar报告的错误消息:
Exception in thread "main" java.lang.NoSuchMethodError: javax.sdp.SdpFactory.getInstance()Ljavax/sdp/SdpFactory;
at Hello.main(Hello.java:7)为什么由运行时传递的编译找不到方法?
发布于 2018-11-08 00:45:40
改用下面的代码:
SdpFactory factory = new NistSdpFactory();//SdpFactory.getInstance();gradle更改为:
compile group: 'org.opentelecoms.sdp', name: 'java-sdp-nist-bridge', version: '1.1'https://stackoverflow.com/questions/53183476
复制相似问题