2012-03-01 3 views
1

Добавил некоторое поле в java.io.File и скомпилировал его в jar локально. Теперь я хочу импортировать его в приложение, которое использует это поле. Но javac -classpath myio.jar Test.java не компилируется. Использование отражения и вызова java -classpath myio.jar Test получил ошибку времени выполнения около нет такого поля. Файл должен быть упакован как java.io. Есть ли способ заставить JVM загружать локальный файл java.io.File или это запрещено?Есть ли способ, чтобы JVM загружал настроенный java.io.File вместо стандартного

+2

Зачем вы хотите это сделать? Что java.io.File не дает вам? –

+2

Почему вы просто не подписали «Файл»? – vulkanino

+1

Позвольте мне получить это право - вы создаете класс, который наследуется от 'java.io.File' или просто реализовал' java.io.File' в вашей банке? Как это возможно? Почему бы не назвать его 'com.my.ExtendedFile' или что-то еще - а затем использовать его в своем коде? – Nim

ответ

3

Есть ли способ заставить JVM загружать локальные java.io.File или это запрещено?

Запрещается.

Вы могли возможно работа вокруг этого компиляции «настроить» File класс и добавить его к ..., но загрузочного пути к классам это действительно плохая идея сделать это для чего-нибудь другого, чем эксперимент.


Это из-за андроида. Они имеют различную реализацию базовой библиотеки java. Я хочу перенести некоторые из файлов.

Если вы хотите сменить код с Android на Java (TM), вы должны изменить свой код, чтобы удалить зависимые платформы, не меняя платформу.

+0

спасибо за указатель! – Oxdeadbeef

0

На самом деле, сначала загружается класс File в jdk, поэтому ваш класс не будет загружен. Вы можете поместить вас в класс jdk (rt.jar), если нет ошибки компиляции, он должен работать.

Смежные вопросы