2010-10-12 4 views
3

Предположим, что у вас мало времени, и вы ищете программу с определенными функциями, и вы ее найдете, за исключением того, что ей не хватает одной функции - она ​​не может сохранять и загружать ее состояние. Можно ли достичь этого на уровне ОС или с другой программой, которая может взять все это, записать в файл, а затем позже загрузить обратно в память? Как?Сохраните и загрузите состояние программы (Java)

В частности, для меня речь идет о программе Java, но больше информации по этой теме приветствуется.

ответ

5

Одним (тяжелым и легким) решением может быть использование VirtualPC и установка программы на виртуальной ОС.

+0

Очень умный! Какова была бы ваша ОС выбора для этого случая? – quano

+0

, конечно, это зависит от ваших потребностей. Тяжелая часть: вам нужна полная установка ОС. Win7prof содержит режим WinXP. но у меня также есть Windows Vista с Windows Vista в VirtualPC. Вам нужно минимум 2 ГБ. После установки всего, он работает довольно легко, вы решили сохранить/сохранить изменения или удалить все. – OlimilOops

0

Вы хотите сделать что-то вроде функции Hibernate для Windows?

Это будет чрезвычайно сложно реализовать на Java, так как вам также нужно будет написать состояние JavaVM. Если у вас были открытые файлы, когда вы закрыли конец программы так далее.

Я думаю, что лучшее, что вы можете сделать, это записать объекты, которые нужно восстановить на диск, используя сериализацию Java.

+0

Hibernate - я полагаю. В этом случае программа довольно проста и не имеет открытых файлов. Просто его собственное состояние. Почему сохранение состояния JavaVM должно быть проблемой? Предположим, вы используете только эту программу Java. – quano

+0

Ну, Java VM загружается вашей ОС, а затем виртуальная машина Java загружает вашу программу. Итак, вы ищете программу для загрузки JavaVM, позвольте нам называть ее MyJavaLoader, которая загружает JavaVM, который загружает вашу программу. Вы видите бесконечную цепочку :-). – Dave

1

Проверьте эти библиотеки: -

  1. Brakes
  2. ACTC(Asynchronous Transfer of Control Threading) [Статья]
  3. Apache JavaFlow
+0

JavaVM - это виртуальная машина. Гораздо меньше ресурсов для сохранения скриптовой виртуальной машины, чем полноценная виртуальная машина на основе компилятора на основе динамической сборки. – TamusJRoyce

0

Посмотрите на проект CRIU на https://criu.org/Main_Page

Он предлагает именно это возможность в linux s ystems. Docker интегрирует его и предлагает команду контрольной точки докера, которая, если вы запустите свою программу в контейнере, позволит вам сделать это на любой ОС.

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