Если Вы не можете найти хороший преобразователь, Вы могли бы всегда компилировать код c# и использовать dissasembler в Отражатель для наблюдения кода Visual Basic. Некоторые имена переменной изменятся.
Если вы находитесь в командной строке, то javap -l отобразит LineNumberTable и LocalVariableTable, если он присутствует:
peregrino:$ javac -d bin -g:none src/Relation.java
peregrino:$ javap -classpath bin -l Relation
public class Relation extends java.lang.Object{
public Relation();
peregrino:$ javac -d bin -g:lines src/Relation.java
peregrino:$ javap -classpath bin -l Relation
public class Relation extends java.lang.Object{
public Relation();
LineNumberTable:
line 1: 0
line 33: 4
peregrino:$ javac -d bin -g:vars src/Relation.java
peregrino:$ javap -classpath bin -l Relation
public class Relation extends java.lang.Object{
public Relation();
LocalVariableTable:
Start Length Slot Name Signature
0 5 0 this LRelation;
javap -c
отобразит исходный файл, если он присутствует в начале декомпиляции:
peregrino:$ javac -d bin -g:none src/Relation.java
peregrino:$ javap -classpath bin -l -c Relation | head
public class Relation extends java.lang.Object{
...
peregrino:$ javac -d bin -g:source src/Relation.java
peregrino:$ javap -classpath bin -l -c Relation | head
Compiled from "Relation.java"
public class Relation extends java.lang.Object{
...
Программно я бы посмотрел на ASM , а не написал бы еще один считыватель байт-кода.
You must check the Code
structure in the class file and look for LineNumberTable
and LocalVariableTable
attributes.
Tools like ASM or Apache Commons BCEL (Byte Code Engineering Library) will help: https://commons.apache.org/proper/commons-bcel/apidocs/index.html?org/apache/bcel/classfile/LineNumberTable.html