ikvmnet / ikvm

A Java Virtual Machine and Bytecode-to-IL Converter for .NET
Other
1.24k stars 116 forks source link

Jar file worked fine using ikvm and fail to work when compiled by ikvmc #79

Closed xjjius closed 2 years ago

xjjius commented 2 years ago

I was trying to use a pure java cheminformatics tool named OPSIN (https://github.com/dan2097/opsin) in my NET project. The opsin tool provides both a cli tool and share libs for programing.

The cli tool of opsin worked perfect with ikvm (for NET 6):

ikvm -jar opsin-cli-2.6.0-jar-with-dependencies.jar

Since it acted the same as using local jvm ( java -jar ...) except a minor warning like: Unable to get Charset 'cp65001' for property 'sun.stderr.encoding', using default UTF-8 and continuing. I assumed that the ikvm runtime has no big problem running this tool.

However, when I was trying to compile the jar file to exe file, the result exe is not working. I did get the jar file compiled with the -nostdlib -r:<ikvmtools>/refs/*.dll workaround. Here is the warning message during the compiling process:

ikvmc -nostdlib -r:./refs/*.dll D:\Download\Cheminformatics\opsin-cli-2.6.0-jar-with-dependencies.jar IKVM.NET Compiler (8.2.0-prerelease.809) Copyright © 2022 Jeroen Frijters, Windward Studios, Jerome Haltom, Shad Storhaug

note IKVMC0004: Using main class "uk.ac.cam.ch.wwmm.opsin.Cli" based on jar manifest warning IKVMC0127: Assembly ".\refs\netstandard.dll" is ignored as previously loaded assembly "D:\test\ikvm\netstandard.dll" has the same identity "netstandard, Version=2.1.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51" note IKVMC0002: Output file is "opsin-cli-2.6.0-jar-with-dependencies.exe" warning IKVMC0100: Class "org.osgi.framework.BundleActivator" not found warning IKVMC0100: Class "com.lmax.disruptor.EventFactory" not found warning IKVMC0100: Class "com.fasterxml.jackson.dataformat.xml.JacksonXmlModule" not found warning IKVMC0100: Class "com.fasterxml.jackson.databind.ser.std.StdScalarSerializer" not found warning IKVMC0100: Class "com.lmax.disruptor.ExceptionHandler" not found warning IKVMC0100: Class "com.fasterxml.jackson.core.type.TypeReference" not found warning IKVMC0135: Unable to compile "META-INF.versions.9.org.apache.logging.log4j.core.util.SystemClock" (wrong name: "org.apache.logging.log4j.core.util.SystemClock") warning IKVMC0100: Class "com.lmax.disruptor.EventTranslator" not found warning IKVMC0100: Class "com.fasterxml.jackson.databind.deser.std.StdScalarDeserializer" not found warning IKVMC0100: Class "com.fasterxml.jackson.databind.ser.std.StdSerializer" not found warning IKVMC0100: Class "com.fasterxml.jackson.dataformat.xml.XmlMapper" not found warning IKVMC0100: Class "javax.mail.Authenticator" not found warning IKVMC0100: Class "com.lmax.disruptor.SequenceReportingEventHandler" not found warning IKVMC0100: Class "com.fasterxml.jackson.databind.deser.std.StdDeserializer" not found warning IKVMC0100: Class "com.fasterxml.jackson.databind.module.SimpleModule" not found warning IKVMC0100: Class "org.jctools.queues.MpscArrayQueue" not found warning IKVMC0100: Class "com.lmax.disruptor.EventTranslatorVararg" not found warning IKVMC0100: Class "com.fasterxml.jackson.dataformat.xml.util.DefaultXmlPrettyPrinter" not found warning IKVMC0100: Class "com.fasterxml.jackson.dataformat.yaml.YAMLMapper" not found warning IKVMC0100: Class "com.fasterxml.jackson.databind.ObjectMapper" not found warning IKVMC0101: Unable to compile class "META-INF.versions.9.org.apache.logging.log4j.util.internal.DefaultObjectInputFilter" (class format error "META-INF.versions.9.org.apache.logging.log4j.util.internal.DefaultObjectInputFilter (53.0)") warning IKVMC0101: Unable to compile class "META-INF.versions.9.org.apache.logging.log4j.util.Base64Util" (class format error "META-INF.versions.9.org.apache.logging.log4j.util.Base64Util (53.0)") warning IKVMC0101: Unable to compile class "META-INF.versions.9.org.apache.logging.log4j.util.StackLocator" (class format error "META-INF.versions.9.org.apache.logging.log4j.util.StackLocator (53.0)") warning IKVMC0101: Unable to compile class "META-INF.versions.9.module-info" (class format error "META-INF.versions.9.module-info (53.0)") warning IKVMC0101: Unable to compile class "META-INF.versions.9.org.apache.logging.log4j.util.ProcessIdUtil" (class format error "META-INF.versions.9.org.apache.logging.log4j.util.ProcessIdUtil (53.0)") warning IKVMC0100: Class "com.ctc.wstx.shaded.msv_core.driver.textui.Driver" not found warning IKVMC0100: Class "org.osgi.framework.FrameworkUtil" not found warning IKVMC0100: Class "org.osgi.framework.wiring.BundleWiring" not found warning IKVMC0100: Class "org.osgi.framework.Bundle" not found warning IKVMC0100: Class "com.fasterxml.jackson.databind.JsonNode" not found warning IKVMC0100: Class "com.fasterxml.jackson.core.JsonParser$Feature" not found warning IKVMC0100: Class "com.fasterxml.jackson.core.JsonParser" not found warning IKVMC0100: Class "com.fasterxml.jackson.dataformat.yaml.YAMLFactory" not found warning IKVMC0100: Class "com.fasterxml.jackson.databind.ser.impl.SimpleFilterProvider" not found warning IKVMC0100: Class "com.fasterxml.jackson.databind.ser.impl.SimpleBeanPropertyFilter" not found warning IKVMC0100: Class "com.fasterxml.jackson.databind.ObjectWriter" not found warning IKVMC0100: Class "com.fasterxml.jackson.annotation.JsonProperty$Access" not found warning IKVMC0100: Class "com.fasterxml.jackson.annotation.JsonProperty" not found warning IKVMC0100: Class "org.apache.kafka.clients.producer.ProducerRecord" not found warning IKVMC0100: Class "org.apache.kafka.clients.producer.Producer" not found warning IKVMC0100: Class "javax.mail.internet.MimeMessage" not found warning IKVMC0100: Class "javax.mail.internet.InternetAddress" not found warning IKVMC0100: Class "javax.mail.Message$RecipientType" not found warning IKVMC0100: Class "javax.mail.Message" not found warning IKVMC0100: Class "org.osgi.framework.BundleReference" not found warning IKVMC0100: Class "org.osgi.framework.BundleContext" not found warning IKVMC0100: Class "com.fasterxml.jackson.core.util.MinimalPrettyPrinter" not found warning IKVMC0100: Class "com.fasterxml.jackson.core.util.DefaultPrettyPrinter" not found warning IKVMC0100: Class "com.fasterxml.jackson.databind.DeserializationFeature" not found warning IKVMC0100: Class "com.fasterxml.jackson.databind.ObjectReader" not found warning IKVMC0100: Class "org.zeromq.ZMQ" not found warning IKVMC0100: Class "org.zeromq.ZMQ$Context" not found warning IKVMC0100: Class "org.zeromq.ZMQ$Socket" not found warning IKVMC0100: Class "com.fasterxml.jackson.databind.Module$SetupContext" not found warning IKVMC0100: Class "com.fasterxml.jackson.databind.Module" not found warning IKVMC0100: Class "javax.jms.Connection" not found warning IKVMC0100: Class "javax.jms.JMSException" not found warning IKVMC0100: Class "javax.jms.MessageProducer" not found warning IKVMC0100: Class "javax.jms.Session" not found warning IKVMC0100: Class "javax.jms.ConnectionFactory" not found warning IKVMC0100: Class "javax.jms.Destination" not found warning IKVMC0100: Class "javax.jms.Message" not found warning IKVMC0100: Class "javax.jms.MapMessage" not found warning IKVMC0100: Class "javax.mail.Session" not found warning IKVMC0100: Class "javax.mail.MessagingException" not found warning IKVMC0100: Class "javax.mail.util.ByteArrayDataSource" not found warning IKVMC0100: Class "javax.mail.internet.MimeUtility" not found warning IKVMC0100: Class "javax.mail.internet.InternetHeaders" not found warning IKVMC0100: Class "javax.mail.internet.MimeMultipart" not found warning IKVMC0100: Class "javax.mail.internet.MimeBodyPart" not found warning IKVMC0100: Class "javax.mail.Transport" not found warning IKVMC0100: Class "org.apache.commons.csv.CSVFormat" not found warning IKVMC0100: Class "com.lmax.disruptor.dsl.Disruptor" not found warning IKVMC0100: Class "com.lmax.disruptor.dsl.ProducerType" not found warning IKVMC0100: Class "com.lmax.disruptor.RingBuffer" not found warning IKVMC0100: Class "com.lmax.disruptor.TimeoutException" not found warning IKVMC0100: Class "org.fusesource.jansi.AnsiRenderer" not found warning IKVMC0100: Class "org.fusesource.jansi.AnsiRenderer$Code" not found warning IKVMC0100: Class "org.fusesource.jansi.Ansi" not found warning IKVMC0100: Class "org.fusesource.jansi.Ansi$Color" not found warning IKVMC0100: Class "org.fusesource.jansi.Ansi$Attribute" not found warning IKVMC0100: Class "org.apache.kafka.clients.producer.KafkaProducer" not found warning IKVMC0100: Class "com.lmax.disruptor.SleepingWaitStrategy" not found warning IKVMC0100: Class "com.lmax.disruptor.YieldingWaitStrategy" not found warning IKVMC0100: Class "com.lmax.disruptor.BlockingWaitStrategy" not found warning IKVMC0100: Class "com.lmax.disruptor.BusySpinWaitStrategy" not found warning IKVMC0100: Class "com.lmax.disruptor.TimeoutBlockingWaitStrategy" not found warning IKVMC0100: Class "com.conversantmedia.util.concurrent.DisruptorBlockingQueue" not found warning IKVMC0100: Class "com.fasterxml.jackson.annotation.JsonCreator$Mode" not found warning IKVMC0100: Class "com.fasterxml.jackson.annotation.JsonCreator" not found warning IKVMC0100: Class "org.apache.commons.compress.compressors.CompressorStreamFactory" not found warning IKVMC0100: Class "org.apache.commons.compress.utils.IOUtils" not found warning IKVMC0100: Class "org.apache.commons.compress.compressors.CompressorException" not found

And here is the exception message when I was trying to run the exe file:

Could not load type 'System.Object' from assembly 'System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e' because the parent does not exist. at main(String[] )

I also tried to compile the share libs of opsin to dll file and here is the warning message: ikvmc -nostdlib -r:./refs/*.dll D:\Download\Cheminformatics\opsin-core-2.6.0.jar IKVM.NET Compiler (8.2.0-prerelease.809) Copyright © 2022 Jeroen Frijters, Windward Studios, Jerome Haltom, Shad Storhaug

warning IKVMC0127: Assembly ".\refs\netstandard.dll" is ignored as previously loaded assembly "D:\test\ikvm\netstandard.dll" has the same identity "netstandard, Version=2.1.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51" note IKVMC0002: Output file is "opsin-core-2.6.0.dll" warning IKVMC0100: Class "org.codehaus.stax2.util.StreamWriterDelegate" not found warning IKVMC0100: Class "org.apache.logging.log4j.Logger" not found warning IKVMC0100: Class "dk.brics.automaton.RunAutomaton" not found warning IKVMC0100: Class "dk.brics.automaton.RegExp" not found warning IKVMC0100: Class "dk.brics.automaton.SpecialOperations" not found warning IKVMC0100: Class "org.apache.logging.log4j.LogManager" not found warning IKVMC0100: Class "com.ctc.wstx.stax.WstxOutputFactory" not found warning IKVMC0100: Class "org.apache.commons.io.IOUtils" not found warning IKVMC0100: Class "com.ctc.wstx.stax.WstxInputFactory" not found

The resulting dll file can be successfully imported to a NET 6 project along with IKVM-8.2.0-prerelease.809 nuget package as runtime. But running a simple test project will result in an excpetion like this:

System.TypeInitializationException:“The type initializer for 'uk.ac.cam.ch.wwmm.opsin.NameToStructure' threw an exception.”

NoClassDefFoundError: org.apache.logging.log4j.LogManager

BTW, I am have been waiting a NET Core based IKVM for so long!!! Thanks for the great work!! Hope this message will help.

NightOwl888 commented 2 years ago

One thing you could attempt is to use a different ClassLoader to see if that helps.

As for the multiple netstandard.dll warning, I have only seen that happen when I attempted to use .NET 6.0 reference assemblies instead of the .NET Core 3.1 reference assemblies that are packed in the distribution (at least with the -nostdlib -r:<ikvmtools>/refs/*.dll workaround). Did you replace the contents of the refs directory? It shouldn't have a netstandard.dll. Keep in mind an assembly targeting netcoreapp3.1 should work fine when using the net6.0 runtime (that is, when it is consumed by an app targeting net6.0).

One other thing that might be worth at try is to see if it works without combining all dependencies to a single .jar. I uploaded a proof-of-concept that can help you download and resolve all of the dependencies to compatible versions (which may be a contributor to your issue). It uses Maven to do this, but is a bit simpler than working with the command line options on Maven. It will automatically download Maven if you don't have MAVEN_HOME configured, but you do need a JDK installed to make it work.

NightOwl888 commented 2 years ago

@wasabii

Unable to get Charset 'cp65001' for property 'sun.stderr.encoding', using default UTF-8 and continuing.

.NET Core doesn't ship with all encodings in the box like .NET Framework or the JRE does. For our command line tools, we should probably add a dependency on System.Text.Encoding.CodePages. See the CodePagesEncodingProvider for instructions on how to load the code pages during app startup.

For class libraries, we can leave this up to the consumer to put in their app startup if they need it.

xjjius commented 2 years ago

@NightOwl888 Thank you for the advice. I didn't replace the contents of refs directory, the netstandard.dll is in there already.

I just tried the different ClassLoader approach and it is not work. I like the MavenReference idea, is it full functional yet? I'd like to try it.

BTW, I forgot to mention that I am using Windows 11 and I only installed NET 6 SDK on my PC (version 6.0.300).

NightOwl888 commented 2 years ago

I didn't replace the contents of refs directory, the netstandard.dll is in there already.

Hmm...looks like you are right.

image

But we are shipping a .NET Framework 4.8 build of it when a .NET Core 3.1 build exists. Seems like something is negotiating the wrong DLL to ship here.

I like the MavenReference idea, is it full functional yet? I'd like to try it.

Not fully functional - it doesn't automatically convert the .jar files yet. But it can analyze one or more specified Maven packages, negotiate dependency version conflicts, and download them all to a single (obj/jar/) folder in seconds.

BTW, I forgot to mention that I am using Windows 11 and I only installed NET 6 SDK on my PC (version 6.0.300).

Shouldn't really matter. But thanks for the info if it does.

wasabii commented 2 years ago

So judging by the ikvmc output and stack traces, it appears to me, so far, that you've simply not converted all the required class files to assemblies. In each case it is giving you a class missing, or ClassNotFoundException.

You'll need to run ikvmc on everything that is required. That includes log4j, etc. Then pass the resulting .dlls as references into the later runs, so they can be resolved.


warning IKVMC0100: Class "org.codehaus.stax2.util.StreamWriterDelegate" not found
warning IKVMC0100: Class "org.apache.logging.log4j.Logger" not found
warning IKVMC0100: Class "dk.brics.automaton.RunAutomaton" not found
warning IKVMC0100: Class "dk.brics.automaton.RegExp" not found
warning IKVMC0100: Class "dk.brics.automaton.SpecialOperations" not found
warning IKVMC0100: Class "org.apache.logging.log4j.LogManager" not found
warning IKVMC0100: Class "com.ctc.wstx.stax.WstxOutputFactory" not found
warning IKVMC0100: Class "org.apache.commons.io.IOUtils" not found
warning IKVMC0100: Class "com.ctc.wstx.stax.WstxInputFactory" not found

Everything in that list will have to be available, if it's used at runtime.

xjjius commented 2 years ago

@wasabii Thanks for the advice. I will give it a try.

xjjius commented 2 years ago

@wasabii Simply down load the missing jar libs and compile them together with -sharedclassloader is not enough. Since each jar file has their own dependencies, I got even more "not found" warnings. I will try using JaveReference to find all the dependencies first.

NightOwl888 commented 2 years ago

@wasabii - The OpenNLP.NET project is also getting these warnings. And I think they were also in IKVM 8.1 releases. I haven't seen any evidence that they affect the functionality of IKVM, but we aren't running a full set of tests, so who knows.

wasabii commented 2 years ago

Ya'll, a warning that a class is missing means you left off the class. Maybe the code you're working with didn't need it. Maybe it only needs it some times. Either way: it means you didn't reference an assembly with the required class.

xjjius commented 2 years ago

I just tried the new release version, ikvmc tool still has the same error.

The Charset encoding warning when using ikvm did get fixed.

Update:

I also tried the IkvmReference and it did automatically compiled the included jar file to dll file which can be found in bin folders. The whole procedure went smoothly. I can directly using the translated dll library. However, I got the same error info like :

NoClassDefFoundError: org.apache.logging.log4j.LogManager

when I actually running the codes. But I did see the improvement here, thank you for the great work. Hope to try new release soon.

wasabii commented 2 years ago

@xjjius That error is telling you exactly what is wrong. The JAR file you are trying to compile makes use of a class named org.apache.logging.log4j.LogManager, but you have not provided that library.

It is potentially a warning, if the code you are trying to run specifically does not use LogManager. But if it does, the code will error because it cannot find that class.

xjjius commented 2 years ago

@wasabii Thanks for explaining. Since the jar file is a standalone package which contains all the compiled class files from all dependencies, I was assuming the ikvmc will find and translate the class files by itself. It makes no sense to provide ikvmc all the depended jar files for a standalone jar package. Besides, the org.apache.logging.log4j.LogManager may have its own dependencies, ikvmc may give more warnings for miss dependencies. This is not the behavior that I expected from ikvmc. I am just a Chemist and not an expert of either C# or Java, they are just tools for me. So maybe my opinion is not correct. From my point of view, the compiled dll file should work if the ikvmc can resolve the dependency problem.

NightOwl888 commented 2 years ago

@xjjius - I saw a similar issue when trying to convert the demos for Maven - that is, it wasn't pulling in the org.apache.logging.log4j.LogManager type even though I used Maven to resolve the dependencies. I added the missing org.apache.logging.log4j dependency, and it fixed the problem.

In Maven, there is such a thing as an "optional" dependency which I believe will be an issue if we rely on the original Maven transient dependency resolution logic that (may) exclude them. We need to look into whether there is a way to adjust the filters to include them by default since these won't be optional dependencies in .NET unless they are in types that are never loaded.

xjjius commented 2 years ago

I just tried the new release version of 8.2. The JavaReference approach can compile the jar file to dll but with the same warnings and the same errors when running.

I have also tried the MavenReference to resolve the dependencies of uk.ac.cam.ch.opsin:opsin-core:2.6.0 using new released 8.2 version. And I got 3 errors while building.

1:

ArtifactTransferException: Could not transfer artifact uk.ac.cam.ch.opsin:opsin-core:pom:2.6.0 from/to central (https://repo.maven.apache.org/maven2/): java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: Default, provider: SunJSSE, class: sun.security.ssl.SSLContextImpl$DefaultSSLContext)

SocketException: java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: Default, provider: SunJSSE, class: sun.security.ssl.SSLContextImpl$DefaultSSLContext) 在 org.eclipse.aether.transport.http.HttpTransporter.execute(HttpUriRequest , EntityGetter ) 在 org.eclipse.aether.transport.http.HttpTransporter.implGet(GetTask ) 在 org.eclipse.aether.spi.connector.transport.AbstractTransporter.get(GetTask task) 在 org.eclipse.aether.connector.basic.BasicRepositoryConnector.GetTaskRunner.runTask() 在 org.eclipse.aether.connector.basic.BasicRepositoryConnector.TaskRunner.run() MF.Test C:\Users\xjjius.nuget\packages\ikvm.maven.sdk\1.0.0\buildTransitive\netstandard2.0\IKVM.Maven.Sdk.targets 82

2# ArtifactTransferException: Could not transfer artifact uk.ac.cam.ch.opsin:opsin-core:jar:2.6.0 from/to central (https://repo.maven.apache.org/maven2/): java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: Default, provider: SunJSSE, class: sun.security.ssl.SSLContextImpl$DefaultSSLContext)

SocketException: java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: Default, provider: SunJSSE, class: sun.security.ssl.SSLContextImpl$DefaultSSLContext) 在 org.eclipse.aether.transport.http.HttpTransporter.execute(HttpUriRequest , EntityGetter ) 在 org.eclipse.aether.transport.http.HttpTransporter.implGet(GetTask ) 在 org.eclipse.aether.spi.connector.transport.AbstractTransporter.get(GetTask task) 在 org.eclipse.aether.connector.basic.BasicRepositoryConnector.GetTaskRunner.runTask() 在 org.eclipse.aether.connector.basic.BasicRepositoryConnector.TaskRunner.run() MF.Test C:\Users\xjjius.nuget\packages\ikvm.maven.sdk\1.0.0\buildTransitive\netstandard2.0\IKVM.Maven.Sdk.targets 82

3# DependencyResolutionException: Failed to collect dependencies at uk.ac.cam.ch.opsin:opsin-core:jar:2.6.0 在 org.eclipse.aether.internal.impl.DefaultRepositorySystem.resolveDependencies(RepositorySystemSession session, DependencyRequest request) 在 IKVM.Maven.Sdk.Tasks.MavenReferenceItemResolve.ResolveItems(MavenReferenceItem[] items) 位置 D:\a\ikvm-maven\ikvm-maven\src\IKVM.Maven.Sdk.Tasks\MavenReferenceItemResolve.cs:行号 118 在 IKVM.Maven.Sdk.Tasks.MavenReferenceItemResolve.Execute() 位置 D:\a\ikvm-maven\ikvm-maven\src\IKVM.Maven.Sdk.Tasks\MavenReferenceItemResolve.cs:行号 77 DependencyCollectionException: Failed to collect dependencies at uk.ac.cam.ch.opsin:opsin-core:jar:2.6.0 在 org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.collectDependencies(RepositorySystemSession session, CollectRequest request) 在 org.eclipse.aether.internal.impl.DefaultRepositorySystem.resolveDependencies(RepositorySystemSession session, DependencyRequest request) ArtifactDescriptorException: Failed to read artifact descriptor for uk.ac.cam.ch.opsin:opsin-core:jar:2.6.0 在 org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.loadPom(RepositorySystemSession , ArtifactDescriptorRequest , ArtifactDescriptorResult ) 在 org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.readArtifactDescriptor(RepositorySystemSession session, ArtifactDescriptorRequest request) 在 org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.resolveCachedArtifactDescriptor(DataPool , ArtifactDescriptorRequest , RepositorySystemSession , Dependency , Results , Args ) ArtifactResolutionException: Could not transfer artifact uk.ac.cam.ch.opsin:opsin-core:pom:2.6.0 from/to central (https://repo.maven.apache.org/maven2/): java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: Default, provider: SunJSSE, class: sun.security.ssl.SSLContextImpl$DefaultSSLContext) 在 org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts(RepositorySystemSession session, Collection requests) 在 org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifact(RepositorySystemSession session, ArtifactRequest request) 在 org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.loadPom(RepositorySystemSession , ArtifactDescriptorRequest , ArtifactDescriptorResult ) ArtifactTransferException: Could not transfer artifact uk.ac.cam.ch.opsin:opsin-core:pom:2.6.0 from/to central (https://repo.maven.apache.org/maven2/): java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: Default, provider: SunJSSE, class: sun.security.ssl.SSLContextImpl$DefaultSSLContext)

SocketException: java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: Default, provider: SunJSSE, class: sun.security.ssl.SSLContextImpl$DefaultSSLContext) 在 org.eclipse.aether.transport.http.HttpTransporter.execute(HttpUriRequest , EntityGetter ) 在 org.eclipse.aether.transport.http.HttpTransporter.implGet(GetTask ) 在 org.eclipse.aether.spi.connector.transport.AbstractTransporter.get(GetTask task) 在 org.eclipse.aether.connector.basic.BasicRepositoryConnector.GetTaskRunner.runTask() 在 org.eclipse.aether.connector.basic.BasicRepositoryConnector.TaskRunner.run() MF.Test C:\Users\xjjius.nuget\packages\ikvm.maven.sdk\1.0.0\buildTransitive\netstandard2.0\IKVM.Maven.Sdk.targets 82

wasabii commented 2 years ago

Please upgrade the packages and try again. Reopen the issue if the error still occurs.

xjjius commented 1 year ago

Update: using the newest ikvm release 8.3.0 . They problem is still there. Neither IkvmReference not MavenReference works in my case. Just want to ask, has anyone sucessfully converted a jar file (with some other dependencies) to usable dll file?