Хорошо, просто для уточнения вещи, которые были уже отправлены.
Вы должны иметь каталог com
, содержа каталог company
, содержа каталог example
, содержа файл MyClass.java
.
От папки, содержащей com
, работать:
$ javac com\company\example\MyClass.java
Тогда:
$ java com.company.example.MyClass Hello from MyClass!
Они должны оба быть сделаны от корня исходного дерева. Иначе, javac
и java
не будет в состоянии найти любые другие пакеты (на самом деле, java
даже не был бы в состоянии работать MyClass
).
я создал папки "testpackage" и "testpackage2". Внутри testpackage, я создал TestPackageClass.java, содержащий следующий код:
package testpackage;
import testpackage2.MyClass;
public class TestPackageClass {
public static void main(String[] args) {
System.out.println("Hello from testpackage.TestPackageClass!");
System.out.println("Now accessing " + MyClass.NAME);
}
}
Внутренняя часть testpackage2, я создал MyClass.java, содержащий следующий код:
package testpackage2;
public class MyClass {
public static String NAME = "testpackage2.MyClass";
}
Из каталога, содержащего две новых папки, я работал:
C:\examples>javac testpackage\*.java C:\examples>javac testpackage2\*.java
Тогда:
C:\examples>java testpackage.TestPackageClass Hello from testpackage.TestPackageClass! Now accessing testpackage2.MyClass
, который делает вещи немного более ясными?
Если я не ошибаюсь, TeX написан на диалекте Паскаля, и при компиляции сегодня он обычно сначала компилируется в стандартный C, а затем компилируется компилятором C для создания окончательного двоичного файла. Вместо этого можно было бы скомпилировать исходный код Pascal в C # и, возможно, написать оболочку вокруг него на C #, чтобы использовать его в качестве библиотеки.
Конечно, это довольно большой проект, и он, вероятно, излишний для решения вашей проблемы.