Действительно ли исходный Java является идеальными мертвыми?

Здесь есть несколько проблем с вашим скриптом:

Ошибки \r, такие как:

запуск процесса контейнера вызвал "exec: \" bash \ r \ ": исполняемый файл не найден в $ PATH": неизвестно

blockquote>

И другие подобные ошибки связаны: \r указывает на возврат каретки Windows в вашем скрипте - это было возможно, написано в Windows и смонтировано в виртуальной машине, или ваш редактор каким-то образом добавил эти символы (см. в этом посте ). Linux ожидает только \n и рассматривает \r как часть вашей команды. Попробуйте запустить dos2unix для вашего файла или убедитесь, что нет специальных символов.


Кроме того, у скрипта есть несколько проблем:

  • Вы пытаетесь запустить docker exec, который запускает команду bash, которая cd и запускает скрипт на python. [ 1119] Это можно немного упростить (см. Ниже)
  • Вы хотите запустить Python, вероятно, нет необходимости сначала запускать bash, вы можете запустить команду python напрямую
  • Учитывая, что вы хотите запустить 2 команды Python, вам потребуются разрывы строк, это возможно, но не очень удобно . Было бы лучше создать скрипт Python и смонтировать его в образе, прежде чем запускать простую команду python.
  • Также было бы лучше использовать docker exec -w flag вместо использования команды cd для установки рабочего каталога
  • Нет необходимости в exit или exit (), так как это будет сделано неявно, когда больше не будет никаких инструкций, которые нужно выполнить

Учитывая все это, вы можете:

  • выполнить одну команду, такую ​​как [1134 ]

    docker exec [...] -it -w /scriptsIA dbmobilelife/docker-python-opencv-tesseract \
         echo -e "from SegmentarImagen import *\nextraerNombreUsuarioNiveldeUnaFoto("/imgsIA/andres.jpg")" | python
    

    , в котором вы устанавливаете рабочий каталог с помощью -w и запускаете команду Python, передавая ее содержимое через echo и канал (обратите внимание на \n без пробела, чтобы иметь правильный синтаксис Python)

  • создать скрипт myscript.py, например:

    from SegmentarImagen import *
    extraerNombreUsuarioNiveldeUnaFoto("/imgsIA/andres.jpg")
    

    , затем смонтировать этот скрипт в контейнер и запустить простую команду python:

    docker exec [...] -it -w /scriptsIA -v /path/to/myscript.py:/myscript.py \
       dbmobilelife/docker-python-opencv-tesseract \
       python /myscript.py
    

Примечание: [...] предназначены для объемного крепления -v /scriptsIA:/scriptsIA -v /opt/tomcat/webapps/PokeTrainer/imgIA:/imgsIA, которое я вырезал для упрощения

7
задан skaffman 9 July 2011 в 08:32
поделиться

5 ответов

Я думаю, что это должно быть общественной Wiki

Но к точке, мое представление состоит в том, что J2ME собирается умереть ужасной смертью и оставить нас с нормальным Java. Текущая тенденция Нетбука, объединенная с более мощной тенденцией смартфона, означает, что Ваш средний сотовый телефон сегодня намного более силен, чем машины, которые выполнили J2SE, когда это сначала вышло.

Следовательно, мы можем покончить с J2ME, который был разработан для древнего Nokias, и наслаждайтесь стандартным Java на умной ручке двери (или смартфон).

Единственная проблема, с которой стоит Java, состоит в том, что крупнейший плеер в приложениях смартфона - Apple - не собирается позволять JVM в любое время в обозримом будущем.

8
ответ дан 6 December 2019 в 14:10
поделиться

С более новыми платформами для мобильного телефона как Windows Mobile и Symbian, которые получили долю рынка j2me и т.д., взяли заднее сиденье, должное выйти как не использование в своих интересах аппаратных средств и т.д.

0
ответ дан 6 December 2019 в 14:10
поделиться

Даже если бы Ваш монитор имел акселерометр в нем, то Вы, вероятно, не хотели бы использовать его для приложения для iPhone - таким образом, я скажу, что существуют пределы мобильности, в конце концов.

Если "запись однажды, выполненный где-нибудь" вводит в заблуждение, поэтому она была задумана, прежде чем сотовые телефоны стали распространенными. Насколько API идет, я соглашаюсь, что общее подмножество было бы предпочтительно, но еще раз, вся ниша J2ME является абсолютно новой. JVM все еще полезна: веб-браузер может работать на Windows, Linux и OS X, и игра может работать и на телефонах Nokia и Samsung.

Действительно ли исходный Java является идеальными мертвыми?

Это все еще удовлетворяет исходным требованиям портативного кода от рабочей станции до рабочей станции, таким образом, нет. Но это кажется на установку еще более высокой панели для будущих платформ.

6
ответ дан 6 December 2019 в 14:10
поделиться

Существует много вещей, что Виртуальная машина могла бы, принял решение абстрагировать далеко.

Краткие обзоры ОС далеко некоторые общие аппаратные средства, путем обеспечения стандарта взаимодействуют через интерфейс им (блок i/o, символ i/o, и т.д.).

JVM намеревалась абстрагировать процессор и саму ОС, могущественная цель отдельно (в то время)! Однако абстракция периферийных аппаратных средств была и останется, трудная цель достигнуть.

Возможно, когда мы видим больше сходимости hand-helds/laptops/desktops/servers, потребность абстрагировать аппаратные средства уменьшится.

1
ответ дан 6 December 2019 в 14:10
поделиться

J2ME отлично. Вы можете упаковать и запустить приложения J2ME с помощью Lean и Clean http://www.microemu.org/ . Поскольку я пишу код для J2ME, я лучший программист. Это заставляет вас быть эффективными на память. Мне нравится маленький чистый API. В будущем все мои клиентские приложения будут разработаны для J2ME, а затем портированы на J2SE / Android / iPhone. Трудно состоит в том, чтобы создать свою собственную база GUI Framework, чтобы приложение было плавно работать на любом размере экрана. Это требует времени.

0
ответ дан 6 December 2019 в 14:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: