Skip to content

jpobst/javil

Repository files navigation

Javil

Javil is a .NET library for reading Java bytecode, similar to how Mono.Cecil is used to read .NET assemblies.

Example:

var container = ContainerDefinition.ReadContainer ("commons-cli-1.5.0.jar");

foreach (var type in container.Types) {
    Console.WriteLine ($"- {type.FullName}");

    foreach (var method in type.Methods.Where (m => !m.IsConstructor))
        Console.WriteLine ($"  - {method.ReturnType.Name} {method.FullName} ({string.Join (", ", method.Parameters.Select (p => $"{p.ParameterType.Name} {p.Name}"))})");
}

Output:

- org.apache.commons.cli.AlreadySelectedException
  - Option getOption ()
  - OptionGroup getOptionGroup ()
- org.apache.commons.cli.AmbiguousOptionException
  - String createMessage (String option, Collection matchingOptions)
  - Collection getMatchingOptions ()
- org.apache.commons.cli.BasicParser
  - String[] flatten (Options options, String[] arguments, boolean stopAtNonOption)
- org.apache.commons.cli.CommandLine
  - void addArg (String arg)
  - void addOption (Option opt)
  - List getArgList ()
...

About

.NET library for reading Java bytecode

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published