Java компилятор android


Top 10 Android Apps and IDE for Java Coders and Programmers

Coding on a Android Tablet or Smartphone

Recently at IDR Solutions my collegues have spent a lot of time traveling to different conferences such as JavaOne and more recently DevFest. One of the complaints my colleagues have is the amount of luggage they have to carry, especially when they still want to work on code for our Java PDF Library, Java Image Library and PDF to HTML5/SVG Converter.

Having previously written a article on the ‘The 10 Best Android Apps for Designers and Web Developers’  as I spend a lot of my time on the web development and designing side of things, it occurred to me that Android is an extremely powerful platform (and open source) and I would be sure to find useful Apps and IDE’s for Java Coders and Programmers.

So to help make things easier for them, and with my keen interest in technology and love of gadgets I grabbed my trusty Android Phone to see what I could find.

JavaIDEdroid is an IDE (integrated development environment) which can run on Android and allows you to natively create Android applications without the need to use the Android SDK on Mac, Windows or Linux. JavaIDEdroid comes equipped with an aapt tool, compiler for Java, dx tool, DexMerger tool, ApkBuilder, zipsigner-lib (this library also does the zipalign),  SpongyCastle Library, BeanShell Interpreter and JavaRunner, which allows running of any binary Java command line applications (.jar file).

Java Editor is a very easy to use and simple Java editor. It’s limited in functionality but it can color the syntax nodes, attributes, properties, events and also supports auto-completion and search and replace. It can open default files with the extensions jav & java.

Terminal IDE is a highly expandable terminal application. It comes with full Java / C / C++ / HTML / Android development kit, and can be run on any android device. It uses the command line, and the editor has been setup with c / java / HTML development as the main choice for developers.

DroidEdit is a text and source code editor (similar to Notepad++ on the PC) and is available for android tablets and phones. DroidEdit is supported by android tablets with external keyboards like the Asus Transformer or those with third party external keyboards, there is also support for Hackers Keyboard. It also supports a variety of languages like C, C++, C#, Java, HTML, CSS, Javascript, Python, Ruby, Lua, LaTeX, and SQL.

There is also a premium version with SFTP/FTP, Dropbox, Drive and Box support (great if you are on the move), custom themes (for those that want to customize everything), external commands through SSH and root mode.

Syntax highlighted Code Editior supports HTML, CSS, JavaScript, PHP editor, Python, Java, C, C++, CoffeeScript, Haskell, Clojure, and Groovy. It is mainly pitched at those primarily involved in web developement, but can be used by Java coders. It comes with a whole host of functionalities such as search/replace, undo and redo functionality.

Code Peeker Pro comes with syntax highlighting, and allows you to look up snippets. Although not an editor, it is a useful code reader and has been selected to be part of the Google Play for Education program and is currently used in schools as a teaching aid. Code Peeker will open and highlight any supported code language like C/C++ (c, cc, cpp, h, hpp), C# (c-sharp, csharp, cs), CSS, Java, JavaScript (js, jscript), PHP, Python (py), Ruby (rails, ror), XML (xml, xaml, xslt, html, xhtml), ActionScript 3 (as3), AppleScript, Cold Fusion,  Delphi/Pascal, Diff/patch files, Erlang, Groovy, JavaFX (jfx), Perl (pl), PowerShell (ps), Sass, Scala, SQL, Terminal scripts (bash, shell, sh, rc, conf), Visual Basics (vb, vbnet) and Verilog & System Verilog (v, sv)

It can also mark where the important code is,  comes with a built-in file browser (in case your phone doesn’t have one), supports internal and external SD card memory and also supports other file browsers (Dropbox, File Expert, FX, Astro File Manager, etc).

Sand is an integrated development environment (IDE) for Java (Support from Java 1.3 to Java 1.6. but please note Android doesn’t support Java 1.7) in Android platform.The Sand IDE is a Java Editor, and supports keywords highlighting for Java, showing line numbers, undo/redo, and is also a full-featured Java compiler and can run Java programs with both output and input supported. In terms of keyboards it supports external bluetooth keyboards and for those that wish to customize everything you can change font colour, font size, background colour and more.

Most importantly it supports all kinds of CPU architectures (x86, ARM, MIPS) as recently some of the new tablets have Intel chips.

AIDE is an integrated development environment (IDE) for developing real Android apps directly on your Android device. It comes with interactive coding lessons and step-by-step tutorials for app development and Java programming skills. You can visually design apps, write code with the editor which can do code completion, real-time error checking, refactoring, smart code navigation and more.

AIDE supports Java/Xml and the Android SDK, apps with C/C++ and the Android NDK as well as pure Java console applications. AIDE is fully compatible Dropbox and allows easy download of your code from your Dropbox and sync back your changes. AIDE can also open Android Studio projects which follow the default folder structure. AIDE also supports Git for professional development.

Anacode is another IDE (integrated development environment) and source code editor that supports the languages Java, HTML, CSS, PHP, JavaScript and C/C++ and allows you to build and run from your android device.You can also write and test HTML, JavaScript and CSS in the built-in or system browser, upload to FTP and support Tasks lists too.

Quoda is easy to use source code editor or IDE, similar to Notepad++, with support for SFTP/FTP(S) servers and cloud storage (Dropbox and Google Drive). Some of the features include syntax highlighting with themes, cross-session editing, code-completion,  extended keyboard, downloading source code from URL, auto-encoding detection, brace matching, auto-indentation, line bookmarking, colour picker, HTML formatting and more. These features come at a premium though and you may have to pay extra for newer or additional features. There is support for the following programming languages which include: ActionScript, C, C++, C#, CSS, Haskell, HTML, Java, JavaScript, Lisp, Lua, Markdown, Objective-C, Perl, PHP, Python, Ruby, SQL, Visual Basic and XML.

Hopefully this guide as given you some useful ideas of what editors and IDEs you can use if you are on the go and also gives you a bigger insight into what your Android phone/tablet can do in terms of coding/programming.

Do you use your Android Phone or tablet in a similar way? Let us know what apps you use.

If your interested in IDE articles take a look at:

We now have a series of articles on what is new in Java 9:

If you’re a first-time reader, or simply want to be notified when we post new articles and updates, you can keep up to date by social media (Twitter, Facebook and Google+) or the Blog RSS.

 

Related Posts:

The following two tabs change content below.

Alex Marshall is a marketeer, web developer and designer and enjoys being creative and has a keen interest in technology, and is fascinated by both new hardware and software. He also likes retro technology, classic cars and in his spare time enjoys traveling. He is immersed in the world of Java, PDF and HTML5 but loves to explore other areas in the world of tech.

blog.idrsolutions.com

Сборка и выполнение Java программ

Сборка проекта

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

Автоматизация сборки — этап написания скриптов или автоматизация широкого спектра задач применительно к ПО, применяемому разработчиками в их повседневной деятельности, включая такие действия, как:

  1. компиляция исходного кода в бинарный код
  2. сборка бинарного кода
  3. выполнение тестов
  4. разворачивание программы на производственной платформе
  5. написание сопроводительной документации или описание изменений новой версии

Для автоматизации сборки проектов традиционно используют системы сборки, такие как make на Unix подобных системах и nmake для компилятора Microsoft. Также традиционно написание файлов для сборки проекта под эти системы является задачей нетривиальной. Конечно, пользуясь только Mictosoft Visual Studio можно даже не подозревать о существовании этих файлов, так как интегрированная среда разработки достаточно удобно скрывает всю схему работы, оставляя снаружи несколько диалоговых окон и кнопку Build. Но для сложных проектов использующих массу сторонних библиотек и кроссплатформенных проектов такой подход часто оказывается неприемлемым.

Принципы сборки в java

1. Как работает java компилятор

 

Текст программы ———\

—> Javac —————> *.class

Дополнения  —— [-cp]—/

 

Текст программы — это исходный код программы на языке java.

Дополнения — это классы, которые необходимо учитывать во время сборки (библиотеки).

В итоге мы получаем набор файлов с расширением class. То есть, если мы используем сторонние библиотеки – мы должны указать их при сборке. Это могут быть скомпилированные классы или собранные подсистемы.

Не всегда для компиляции необходимо указывать дополнительные библиотеки (к примеру, если у нас программа в 1 программный файл). Но если всё же это необходимо, то для этого компилятор java необходимо запустить с аргументом «-cp» (сокращение от —classpath). После этого аргумента идёт список библиотек (jar файлов или файлов class) разделённых символом разделителем файлов (в *nix это «:», в windows это «;»).

Пример компиляции программы из одного файла:

javacHelloWorld.java

Пример компиляции программы c дополнительными библиотеками «myLib» и «my2ndLib»:

javac -cp myLib.jar:my2ndLib.jar NotStandartHelloWorld.java

В java нет разграничения между собранной библиотекой, исполняемым приложением или же подсистемой. Что имеется в виду, что если вы хотите создать самостоятельную сущность в едином файле, вы создаёте jar файл. К примеру, если вы создаёте библиотеку, то это будет jar файл с набором классов, который могут быть использованный другими разработчиками, если это подсистема, то это часть функционала (набор классов) вынесенная за рамки основного модуля, но используемая в нём (что то вроде частной библиотеки), и т.д..

 

2. Выполнение java-программы.

 

*.class ————- ———\

—> Java

Дополнения  —— [-cp]—/

 

Выполнение классов работает схожим образом с компиляцией (используются даже те же аргументы).

Если после компиляции у нас получилось 10 классов, то выполняем только класс который содержит функцию main, остальные классы должны быть представлены как библиотеки.

К примеру, запуск программы c дополнительными библиотекой «sout», которая находиться в папку «lib» выглядеть так:

java -cp lib/sout.jar HelloWorld

По умолчанию, все классы в текущем каталоги включены в пути (-cp для классов в текущем каталоге указывать не надо). Что имеется в виду, если мы скомпилировали программу, и в итоге получили множество классов в одной папке, то мы можем запускать только лишь главный класс, остальные классы java попробует найти сама в текущем каталоге (Даже если они находятся во вложенных папках, java и туда заглянет).

Такой подход допустим, когда у нас немного классов, но при больших системах перечисление всех классов не возможно (их количество может превышать тысячи …). Поэтому можно выполнять не класс, а специально собранный jar-файл. Для этого необходимо указать аргументы -jar.

java -cp lib.jar -jar myApp.jar

3. Jar-файл

Jar-файл — это ZIP архив (то есть вы можете разархивировать его). Jar-файл должен в себе содержать набор классов и файл META-INF/MANIFEST.MF, в котором описаны характеристики данного jar-файла.

Основной вариант создания Jar-файла:jar cf jar-file input-file(s)

Jar – это утилита и набора утилит которые вы получаете при установке java.

Программа jar принимает аргументы в old-UNIX стиле: вначале идут ключи потом аргументы программы, ключ с аргументом указывается последним, не указывать «-» перед аргументами, группировать короткие аргументы («cf» значит «-c -f »).

  1.  Опция c — говорит о том, что вы хотите создать (create) jar-файл.
  2. Опция f — говорит о том, что вы хотите создать файл (file) с определённым именем (при выполнении данного примера создастся файл с именем «jar-file.jar»).
  3. Аргумент input-file(s) является разделенный пробеламисписок из одного или нескольких файлов, которые вы хотите включить в ваш JAR-файл. input-file(s) аргумент может содержать символ «*». Если любой из входных является каталогом, содержимое этих каталогов добавляются в архив JAR рекурсивно.

Когда вы создаете JAR-файл, он автоматически получает файл манифеста по умолчанию (если вы его не указали во входных файлах – он будет создан автоматически). В jar-файле может быть только один файл манифеста с указанным путём:

META-INF/MANIFEST.MF

Общая структура манифеста имеет вид:

Заголовок: значение

Все символы пробелов (\n, \r, \t, …) в «значении» будут удалены, к примеру, манифест:

Manifest-Version:1.0Созданная-By:1.6.0

(

Sun

Microsystems

Inc

)

 

Равносилен:

Manifest-Version: 1.0Созданная-By: 1.6.0 (Sun Microsystems Inc)

Когда вы создаете JAR-файл, по умолчанию файл манифеста просто содержит следующее:

Manifest-Version: 1.0Созданная-By: 1.6.0 (Sun Microsystems Inc)

Эти строки показывают, что элементы манифеста имеют форму «заголовок: значение» пар. Имя заголовка отделяется от ее значения двоеточием. Манифест по умолчанию соответствует версии 1.0 спецификации манифест и был создан 1.6.0 версии JDK.

Манифест также могут содержать информацию о других файлах, которые не упакованы в архив (внешние библиотеки который необходимы для функционирования, об этом будет сказано более подробно дальше). Именно то, что информацию о jar-файле должна быть записаны в манифесте зависит от того, как вы собираетесь использовать JAR-файл. Манифест по умолчанию не делает никаких предположений о том, какую информацию он должен записать о других файлах.

Чтоб создать jar-файл с манифестом:jar cfm jar-file manifest-addition input-file(s)

Ключ «f» и «m» оба требуют аргументов, поэтому мы вначале указываем ключи, а потом в том же порядке указываем (если это необходимо) недостающее аргументы. В начале мы указали аргумент «f», а потом «m», поэтому первый аргумент будет имя выходного файла, а второй это имя (и путь) к манифесту.

Если в написанном вами манифесте не будет одной из выше указанных опций, то они будут добавлены автоматически (то есть, ну указать манифест или указать пустой файл, это одно и то же, это часто применимо в начале разработки…). То, есть если ваш манифест выглядит следующим образом:

То, в итоговом jar-файле он будет представлен в виде:

Manifest-Version: 1.0Созданная-By: 1.6.0 (Sun Microsystems Inc)Main-Class: Main

Если вы разрабатываете приложение, которое поставляется в JAR-файл, необходимо каким-то образом указать, какой класс в JAR-файле является входной точкой приложения (который содержит функцию main). Вы предоставляете эту информацию с Main-Class заголовка в манифесте, который имеет общий вид:

Main-Class: имя класса

Значение имени класса является именем класса, который является входной точкой приложения.

После того как вы установите Main-Class заголовка в манифесте, вы запустите файл JAR с помощью следующей формы Java команду:

java -jar JAR-file

Не указав главного класса в манифесте вам придаться выполнять вашу программу так:

java -cp JAR-file.jar MainClass

Если вы хотите указать лишь главный класс в манифесте, то вам не нужно создавать весь манифест, вы можете указать, необходимы параметр при вызове jar:

jar cfe app.jar MyApp MyApp.class

Опция e — говорит о точки входа в программу (entrypoint).

Вам придется ссылаться на классы в другие файлы JAR из JAR-файла (если вы используете сторонние библиотеки в своем приложении). Для этого вам необходимо включить следующие поля в манифест:

Class-Path: jar1-name jar2-name directory-name/jar3-name

Данный путь указывается относительно расположению выполняемого jar файла. К примеру, Netbeans складывает все библиотеки в папку lib, которую помещает рядом с собранным приложением, и соответственно указывает путь к библиотекам.

Рассмотрим конечный пример манифеста, для исполняемого jar-файла библиотеки к которому находятся рядом с ним в папке «lib»:

Manifest-Version: 1.0Созданная-By: 1.6.0 (Sun Microsystems Inc)Main-Class: net.mycompany.product1.MainClass-Path: lib/recoder.jar lib/io-common.jar lib/f

ile-common.jar

ссылка на источник

<Предыдущая        Оглавление      Следующая>

www.fandroid.info

скорость компиляции / Блог компании Badoo / Хабрахабр

Как уже знают все Android-разработчики, Google недавно объявила об официальной поддержке Kotlin в Android. Многие риски, связанные с использованием этого замечательного языка в Android-проектах, сняты. Но актуальным, особенно для очень крупных проектов, каким является Badoo, остаётся вопрос о скорости сборки. Я был рад обнаружить, что в сети уже есть исследования на эту тему, и переводом одного из них хочу поделиться.

Итак, если вы переводите приложение с Java на Kotlin, будет ли оно компилироваться дольше?

В более ранней статье обсуждалось конвертирование Android-приложения из Java целиком в Kotlin. Кода на Kotlin получалось меньше, и он был удобнее в сопровождении, чем на Java, так что я пришёл к выводу, что оно того стоило. Но некоторые разработчики не хотят пробовать Kotlin, опасаясь, что он может компилироваться медленнее Java. И это беспокойство – справедливо: никто не хочет тратить время на конвертирование кода, если в результате сборка будет длиться дольше. Так что давайте изучим длительность компиляции приложения App Lock до и после конвертирования в Kotlin. Я не буду сравнивать скорость Kotlin и Java построчно, а вместо этого попытаюсь ответить на вопрос, повлияет ли конвертирование всей кодовой базы из одного языка в другой на общую продолжительность сборки.

Как я тестировал длительность сборки

Я написал shell-скрипты для повторяемых запусков Gradle-сборок по разным сценариям. Все тесты выполнялись последовательно по десять раз. Перед каждым новым сценарием проект очищался. Для сценариев, использующих демона Gradle, последний останавливался перед запуском бенчмарка.

Все бенчмарки выполнялись на машине с Intel Core i7–6700, работающим с частотой 3,4 ГГц, оснащённой 32 Гб памяти DDR4, а также SSD-приводом Samsung 850 Pro. Исходный код собирался с помощью Gradle 2.14.1.

Тесты

Я хотел прогнать бенчмарки для нескольких распространённых сценариев использования: чистые сборки с/ без демона Gradle, инкрементальные сборки без изменения файлов, инкрементальные сборки с изменённым файлом.

Кодовая база App Lock на Java содержала 5491 метод и 12 371 строку кода. После конвертирования в Kotlin количество методов уменьшилось до 4987, а количество строк – до 8564. В процессе преобразования в архитектуру не вносились никакие серьёзные изменения, так что измерение длительности компиляции до и после конвертирования должно дать чёткое представление о разнице в продолжительности сборки между Java и Kotlin.

Чистые сборки без демона Gradle

Это наихудший сценарий с точки зрения продолжительности сборки для обоих языков: запуск чистой сборки с холодным стартом. Для этого теста я отключил демон Gradle.

Вот сколько времени заняли все десять сборок:

Десять последовательных чистых сборок без демона Gradle

Средняя продолжительность сборки Java составляет [цифры исправлены по исходным данным автора — прим. переводчика] 24,5 секунд, Kotlin – 32,4 секунд: увеличение на 32%. Не лучшее начало для Kotlin, но большинство людей компилируют свой код по другим сценариям.

Чаще всего мы несколько раз компилируем одну и ту же кодовую базу по мере внесения в неё изменений. Именно для этого сценария был разработан демон Gradle, так что давайте включим его и посмотрим, что получится.

Чистые сборки с включённым демоном Gradle

Одной из проблем JIT-компиляторов вроде JVM является то, что они тратят время на компиляцию исполняемого в них кода, так что по мере его исполнения производительность процесса увеличивается. Но если остановить JVM-процесс, то прирост производительности теряется. При каждой сборке Java-кода обычно приходится запускать и останавливать JVM. В результате он каждый раз заново делает одну и ту же работу. Для решения этой проблемы Gradle поставляется с демоном, который продолжает функционировать между сборками и помогает поддерживать прирост производительности, обеспечиваемый JIT-компиляцией. Включить демон можно с помощью Gradle-команды --daemon, вводимой в командной строке, или с помощью добавления org.gradle.daemon=true в файл gradle.properties.

Вот результат прогона той же серии сборок, но с включённым демоном Gradle:

Десять последовательных сборок с включённым демоном Gradle

Как видите, первый прогон занимает примерно столько же времени, сколько в сценарии без демона. В последующих сборках производительность растёт вплоть до четвёртого прогона. При таком сценарии более целесообразно оценивать среднюю продолжительность сборки после третьего прогона, когда демон уже прогрелся. В этом случае чистая сборка на Java занимает в среднем 14,1 секунды, а на Kotlin – 16,5 секунд: увеличение на 13%.

Kotlin догоняет Java, но всё ещё отстаёт. Тем не менее вне зависимости от используемого языка демон Gradle уменьшает длительность сборок более чем на 40%. Если вы его ещё не используете, то самое время начать.

Итак, полные сборки на Kotlin выполняются чуть медленнее, чем на Java. Но обычно мы компилируем после внесения изменений всего лишь в несколько строк кода, так что инкрементальные сборки должны демонстрировать другую производительность. Давайте узнаем, сможет ли Kotlin догнать Java там, где это важно.

Инкрементальные сборки

Использование инкрементальной компиляции является одним из важнейших свойств компилятора по повышению производительности. При обычной сборке перекомпилируются все исходные файлы проекта, а при инкрементальной – отслеживается, какие файлы изменились с момента предыдущей сборки, и в результате перекомпилируются только эти файлы и те, что от них зависят. Это может оказывать очень сильное влияние на длительность компиляции, особенно в больших проектах. Инкрементальные сборки появились в Kotlin 1.0.2, их можно включить, добавив kotlin.incremental=true в файл gradle.properties, или через командную строку.

Итак, как изменится длительность компиляции Kotlin по сравнению с Java при использовании инкрементальной компиляции?

Вот результаты бенчмарка при условии отсутствия изменений в файлах:

Десять последовательных инкрементальных сборок без изменения файлов

Теперь протестируем инкрементальную компиляцию при условии изменения одного исходного файла. Для этого я перед каждой сборкой изменял Java-файл и его Kotlin-эквивалент. В данном бенчмарке это файл, относящийся к пользовательскому интерфейсу, от него не зависят другие файлы:

Десять последовательных инкрементальных сборок с одним отдельным изменённым файлом

Наконец, давайте посмотрим на результаты инкрементальной компиляции с одним изменённым исходным файлом, который импортируется во многие другие файлы проекта:

Десять последовательных инкрементальных сборок при условии изменения одного ключевого файла

Как видите, демону Gradle всё ещё приходится прогревать в течение двух–трёх прогонов, но после этого оба языка становятся очень близки по производительности. При отсутствии изменений в файлах у Java уходит 4,6 секунды на прогретую сборку, а у Kotlin – 4,5 секунды. Если мы меняем файл, но он не используется другими файлами, то Java требуется 7 секунд на выполнение прогретой сборки, а Kotlin – 6,1 секунды. Наконец, если изменённый файл импортируется во многие другие файлы проекта, то при прогретом демоне Gradle инкрементальная сборка Java занимает 7,1 секунды, а у Kotlin уходит в среднем 6 секунд.

Заключение

Мы измерили производительность при нескольких разных сценариях, чтобы узнать, сможет ли Kotlin конкурировать с Java по длительности компиляции. При чистых сборках, которые выполняются сравнительно редко, Java превосходит Kotlin на 10–15%. Но чаще всего разработчики выполняют частичные сборки, при которых большой выигрыш во времени достигается за счёт инкрементального компилирования. Благодаря работающему демону Gradle и включённой инкрементальной компиляции Kotlin не уступает, или даже немного превосходит Java. Впечатляющий результат, которого я не ожидал. Выражаю команде разработчиков Kotlin своё почтение за создание языка, который не только обладает прекрасными возможностями, но и компилируется так быстро.

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

Сырые данные, собранные мной при прогоне бенчмарков, лежат здесь.

habrahabr.ru

Android сборка компиляция java

Зачем нужен С#? Кто сможет обьяснить простым языком

Чтобы ломать психику людей

Я бы хотел подробно рассмотреть процесс компиляции и сборки Android приложения в конечный .apk. ... 8. Java компилятор наконец-то мы до него добрались! это обычный javac из вашего JDK, которому дают на обработку исходный код приложения...

C# Никому не нужен, я не представляю зачем этот язык...Самые нормальные языки это c++ и java<---На java пишутся практически все приложения под андроид...И также java кросплатформенный его игры и приложения поддерживаются в любой ос..А также нормальный и нужный язык это c++. Он кроссплатформенный также доступно все функции и работает он на любом компьютере почтамт язык c++ это тот же ассемблер, а известно что на ассемблере пишут код для процессора:) вот вам и c#

Да вообще не нужен, пишите на Java

С# - это язык более высокого уровня, чем с++. С++ работает под управлением Windows, а С# под управлением CLR. Это своего рода система контроля выполнения кода, со сборкой мусора, безопасностью и жрущая много памяти. С# легче писать, чем на C++

> И зачем нужна Java? Если С++ уже ООП, просто добавьте классы нужные.Java и правда по синтаксису сильно похожа на С++.Но разве синтаксис - главное?Главное в любом языке - это БИБЛИОТЕКИ функций и классов, которые можно использовать в своей программе. Стандартное API (библиотеки) ОС Android написанны именно на Java, поэтому и приложения под Android следует писать на Java, чтобы работать с теми библиотеками напрямую.Второй важный момент в языке - это компилятор. Для Java есть компилятор под Android и есть компилятор в платформонезависимый формат *.jar, который (в отличие от нативных форматов вроде *.exe) может быть запущен и на винде, и на линуксе, и много где еще, при наличии JVM.Третий важный момент - это IDE, т. е. редактор кода на данном языке. IDE у джавы не очень хорошие, но у какого-нибудь Mono, т. е. C# под Android (который на самом деле и не C#, только название одно) эти IDE еще хуже.> Зачем нужен С#?Чтобы писать программы под винду.У него крайне мощная и удобная библиотека, заточенная под винду, и очень удобная IDE. Он идеален практически для всех задач разработки под винду.> С++ с классами для .NET программирования = С# ???Почти. Но в C++/CLI можно использовать и заголовки .h (библиотеки) для чистых Си и С++, например, Windows.h или iostream, если есть такая нужда.

Что бы путаться

Компиляция исходного кода в бинарный код. сборка бинарного кода. ... Сборка и выполнение Java программ. Установка JDK Java Development Kit . Добавление пакетов Android SDK Manager.

1. Для БЫСТРОЙ разработки под винду с красивым интерфейсом.2. С++ с классами для .NET программирования != С#В C# есть ряд дополнительных возможностей, в С++ CLI их нет.

С++ с классами для .NET программирования = С# ???Это не так. В C# более упорядочены классы и пространства имен, при чем на столько неплохо, что можно интуитивно найти без поиска. Убраны "опасные" фишки (вроде указателей и т. д.). Уклон сделан на интерфейсы, а не на множественное наследование (в C# его просто нет), синтаксически код на C# читается легче. Очень много "сахара". Те-же лямбды, Linq, async/await и т. д . Да лямбды появились в C++ v11, но... Теперь C++ вынужден "догонять". Net Reflection позволяет вообще делать очень интересные фишки. Компиляция кода на лету, язык в языке и т. д. без большой головной боли.И потом код на Visual C++ под .NET до сих пор вызывает дергание глаза, т. к. пришлось для C++ писать нехилые костыли, чтобы н-р отличать "безопасные" указатели от "опасных" и т. д. Вообще у C# несколько иные задачи.C++ язык старый с несколькими стандартами, добавлять в него что-то новое, не поломав старое достаточно тяжело. C++ v11 ещё далеко не все используют, а ведь вышел C++ v14. Очень большая инерция.И опять-же Mono/Xamarin... Уже писал как-то у нас был проект для работы с терминалами оплаты. Купюроприемники, принтеры чеков и т. д. Проект запускался под виндами и linux даже без перекомпиляции.

Tim, Ваш вопрос на уровне: "Зачем нужен английский язык, если есть русский? "C# существует НЕ зачем, а почему: потому, что его разработали, и потом внедрили, при поддержке от Microsoft. Аналогично, Java внедрялась при поддержке Sun, а Ada при поддержке НАТО. Разработайте свой язык, найдите поддержку, и тоже внедрите, во всем мире.А как язык, C# ниразу не хуже любого другого, и не лучше.

Чем отличаются процессоры Cortex A9 от Cortex A5

Основные особенности ядер Cortex-A9:Внеочередной, спекулятивный, суперскалярный, с динамическим предсказанием ветвлений вычислительный конвейер. Декодер обрабатывает 2 команды за такт, буфер для перераспределения инструкций ёмкостью 32-40 команд, глубина целочисленного конвейера — 8 ступеней. Ядро обрабатывает до четырёх микроопераций за такт.Поддержка (опционально) блока SIMD-инструкций NEON, обработка до 16 операндов за инструкцию, ширина вектора — до 128 бит. Блок исполнения физически имеет ширину 64 бита, обрабатывая 128-битный вектор за два такта. Исполнение команд NEON — поочередное.Поддержка (опционально) блока инструкций работы с числами с плавающей запятой VPFv3. Отдельный вычислительный конвейер, поочередное исполнение.Поддержка набора инструкций Thumb-2Поддержка расширений безопасности TrustZoneПоддержка расширения Jazelle DBX для исполнения Java-кодаПоддержка расширения Jazelle RCT для JIT-компиляцииРазмер TLB — 128 записей64-битная шина кэша L1Контроллер кэша L2 (0 — 4 МБайт, в поздних ревизиях до 8 МБайт)Поддержка многоядерных конфигурацийРазмер некоторых блоков ядра Cortex-A9 в условных логических вентилях: основное ядро — примерно 600 тысяч вентилей, кэш первого уровня с контроллером — примерно 500 тысяч вентилей, блок NEON — 500 тысяч вентилей. При производстве по технологии TSMC и техпроцессу 65 нм площадь одного ядра Cortex-A9 без кэшей и NEON составляет примерно 1.5 мм2[3].ARM Cortex-A5Ядро предназначено для замены ядер ARM9 и ARM11 для бюджетных устройств. [4] По сравнению с этими ядрами, Cortex-A5 имеет более новую систему команд (ARM v7 вместо v4/v5 у ARM9 и вместо v6 у ARM11), а также может поддерживать расширения VFPv4 и NEON. Ядро A5 совместимо с современными ядрами A8 и A9, благодаря чему возможен запуск ОС и приложений: Android, Microsoft Windows Embedded, Symbian, Ubuntu; Adobe Flash, Java SE, JavaFX.[5]Характеристики ядра:На исполнение запускается не более одной команды в такт, без переупорядочивания (in-order). Конвейер имеет длину в 8 стадий.Опционально ядро может включатьвекторное расширение NEONрасширение обработки плавающих чисел VFPv4Поддерживается компактная кодировка Thumb-2Поддерживается Jazelle RCTПроизводительность на уровне 1.57 DMIPS / MHzРассчитан на выпуск по техпроцессу TSMC 40LP (40 нм, низкое энергопотребление).

П.с мануал сделали по моей прозьбе. Добавлено через 46 минут у меня вопрос а нужна просто ява или jdk? Добавлено через 1 час 14 минут я думаю из за етого Переходим к настройке Java.30 июня 2010

Здесь, как на самом деле это, Cortex A9 основана на новой архитектуре, чтоозначает, что все эти транзисторы забиты в к меньшему умирают, которыйпозволит улучшить, тепловыделение, энергопотребление и все те вещи. Но если вы хотите сырой производительности это определенно должно бытьCortex A5, хотя она основана на старой архитектуры, он имеет болеевысокую тактовую частоту, что позволяет более высокуюпроизводительность.

Посоветуйте сборник флешь игр (читать в нутрь)

Хм, алавар - это шлак или нетhttp:// www.alawar.ru/android/

Easy Hack 201. Часть 3 подмена данных в сериализованных объектах Java. 2. ... Сборка. Перед тем как начать процесс компиляции, мы должны выполнить ... сборка Android под x86 здесь можно почитать подробнее о дереве устройства16 ноября 2013

Скачивай игры с Play Market

(Читать в нутрь) :-)

Планшеты работают под Android и iOS. Приложения под первый пишутся на Java с переключением на C++, под вторую - на Objective C с переключениями на C и C++. Какое отношение Flash имеет к планшету? И играм. . Flash-игры давно канули в Лету, сейчас большинство браузерных мелких игрушек строят в Unity (те же Java и C++). Так что нормальных Flash-игр банально нет. Есть убивалки времени, завоевавшие кое-как популярность. В основном TD или паззлы. Какие там сборники. . -десяток неплохих проектов наберётся и всё. Вроде CommandGrid бородатого года выпуска. Есть серии игры Grow и Samorost. Забавная вещь.А.. есть целый один рейсинг достойный - RoadWolves. Строго говоря, он тоже не на Flash, а на Shockwave, но они имеют общие моменты.

www.nerzon.ru

Шпаргалка Java-программиста 6. Список полезных ссылок для Java программиста / Блог компании Luxoft / Хабрахабр

Добрый день, данная статья о моем opensource pet проекте на github'e useful-java-links, в котором я собрал большое количество ссылок на полезные открытые (и некоторые закрытые) проекты. Этот проект существует на двух языках сразу русском и английском, которые являются полными дубликатами друг друга (кроме отсутствия ссылок на русскоязычные ресурсы в английской версии).

Данный проект — форк такого проекта как awesome-java, плюс добавлены все не мобильные проекты github'a c количеством звезд более 390 (то что описано в этой статье), все проект Apache верхнего уровня, ряд других ссылок, плюс ссылки на русскоязычное видео из этой статьи. В целом, количество полезных ссылок примерно в два раза больше чем в awesome-java. Есть строгая структура разделов, сразу дана информация об лицензиях и возможности использования данной лицензии в закрытом продукте (то есть строгость копилефта и возможность линкования с закрытыми проектами) и количество звезд набранным каждым проектом.

Буду очень благодарен за любые исправления и дополнения в данный сборник (добавить можно как в комментариях к статье, так и просто на github'e ). И за помощь в распространении ссылок на данный проект как среди русскоязычных, так и среди англоязычных (так как версия на английском полностью аналогична русской). В этой статье даны все ссылки, однако обновляемая версия все-таки будет на github'e.

Общее оглавление 'Шпаргалок'

I. Фреймворки и библиотеки

1. Фреймворки и библиотеки общего назначения

К оглавлению

  1. Spring framework Spring — наверное, самый распространенный фреймворк Java в мире. Лицензия: Apache 2, рейтинг github'а — 5921, на stackoverflow — более 100 тыс.вопросов.
  2. Google Guava Очень популярная библиотека от гугла, расширяющая возможности JDK, в том числе добавляющая новые коллекции, добавляющая элементы функционального программирования в Java, кэширование, функции работы с примитивами, библиотеки работы с многопоточностью, аннотациями, строками, I/O, и т.п. Работает с JDK1.6 и выше.. Лицензия: Apache 2, рейтинг github'а — 3813.
  3. Apache Commons — Реализует различные функции, такие как конфигурирование, валидирование, коллекции, загрузка файлов или работу с XML, Лицензия: Apache 2
  4. Spring Boot — система быстрого создания конфигурации из типовых шаблоннов (шаблонов настройки orm, DI, Spring MVC и т.п.). Лицензия: Apache 2, рейтинг github'а — 2386.
  5. Lombok Очень горячие добавления для языка программирования Java. Генератор кода, целью которого является сокращения реализации рутинного кода. Лицензия: MIT, рейтинг github'а — 1540.
  6. Puniverse Quasar Quasar это библиотека, добавляющая Fibers (высокопроизводительные легкие threads), Go-подобные channels и Erlang-подобные actors в JVM. Лицензия: Eclipse Public v1.0/GNU Lesser 3, рейтинг github'а — 1091.
  7. Rootbeer GPU Compiler Rootbeer GPU Compiler — программирование с использованием GPU на Java. Лицензия: MIT, рейтинг github'а — 972.
  8. Oblac Jodd Jodd это набор Java инструментов и микро фреймворк, компактный, но мощный. Jodd = tools + ioc + mvc + db + aop + tx + json + html < 1.5 Mb. Лицензия: BSD 2, рейтинг github'а — 912.
  9. Google Jimfs Jimfs это in-memory файловая система для Java 7 и выше, реализующая API абстрактной файловой системы, описанный в java.nio.file… Лицензия: Apache 2, рейтинг github'а — 752.
  10. Spring batch Spring Batch это легковесный, всеобъемлющий фреймворк, предназначенный для разработки надежных приложений, работающих по расписанию (batch applications), жизненно важных для ежедневных операций корпоративных систем… Лицензия: Apache 2, рейтинг github'а — 448.
  11. Greenrobot common greenrobot-common — маленькая библиотека добавляющая общие утилиты и классы (например, классы работы со stream-based IO, файлами, строками, датой/временем и hash map/hash set с примитивными типами) для Android и Java проектов.. Лицензия: Apache 2, рейтинг github'а — 419.
  12. Kilim Легковесные потоки для Java с обменом сообщениями, nio, http и поддержкой расписания. Лицензия: MIT, рейтинг github'а — 517.
  13. Apache Isis Apache Isis это фреймворк для разработки rapidly developing domain-driven приложений на in Java. Лицензия: Apache 2.
  14. Apache Zest Apache Zest это фремворк для разработки Composite Oriented Programming для domain centric приложений. Это концепция включает вв себя такие концепции как: Aspect Oriented Programming, Dependency Injection и Domain Driven Design. Лицензия: Apache 2.

2. Вебфреймворки (Web Frameworks)

Вебфреймворки (Web Frameworks)

Вебфреймворки служат для реализации вебприложений и обработки взаимодйствия service-side и frontend-side вебприложений.К оглавлению

  1. Play Framework Play Framework позволяет легко разрабатывать расширяемые вебприложения на Java и Scala. https://www.playframework.com/. Лицензия: Apache 2, рейтинг github'а — 6771.
  2. Spark Фреймворк, вдохновленный фреймоворком Sinatra, для java. Лицензия: Apache 2, рейтинг github'а — 2596.
  3. Atmosphere — фреймворк для разработки клиентской и серверной части асинхронных веб.приложений, поддерживающий разные серверны, браузеры и плагины. Лицензия: CDDL1 / Apache 2, рейтинг github'а — 2235.
  4. Grails — вебфреймворк. https://grails.org/ Лицензия: Apache 2, рейтинг github'а — 1386.
  5. Ninja это полноценный веб фреймворк для Java. Надежный, быстрый и очень продуктивный.http://www.ninjaframework.org/. Лицензия: Apache 2, рейтинг github'а — 894.
  6. Electronicarts Orbit — современный фреймворк для JVM языков, который упрощает создание и обслуживание распределенных и масштабируемых онлайн сервисов. Лицензия: BSD 3, рейтинг github'а — 741.
  7. Ratpack это простой, мощный набор библиотек для создания высокопроизводительных вебприложений. http://ratpack.io/ Лицензия: Apache 2, рейтинг github'а — 662.
  8. Vaadin — фреймворк для разработки веб-приложений, основанный на GWT, с server-side моделью программирования и состоянием UI на сервере.https://vaadin.com/ Лицензия: Apache 2, рейтинг github'а — 398.
  9. ZK framework Java фреймворк для создания высокопроизводительных веб и мобильных приложений… Лицензия: GNU Lesser, рейтинг github'а — 161.
  10. Apache Tapestry — Компонентно-ориентированный фреймворк для создания динамичных, надежных, легко маштабируемый веб приложений, Лицензия: Apache 2.
  11. Apache Wicket — Компонентно-ориентированный вебфреймворк, похожий на Tapestry с stateful GUI, Лицензия: Apache 2.
  12. Google Web Toolkit — Набор инструментов разработки, включающий компилятор из Java кода в JavaScript для создания кода, исполняемого в браузере, XML парсер, API для RPC, интеграция с JUnit, поддержка разных языков и локалей и виджеты для создания GUI, Лицензия: Apache 2.
  13. Pippo — Небольшой, модульный Sinatra-подобный микрофреймворк, Лицензия: Apache 2.
  14. Spring MVC — Предоставляет много различных возможностей для разработки вебприложений от dependency injection до аспектно-ориентированного программирования и поддержки security, Лицензия: Apache 2.
  15. JavaServer Faces — Открытая реализация JSF стандарта от Oracle, Лицензия: GNU 2 или CDDL 1.0
  16. JavaServer Pages — Популярная Java технология шаблонов для создания вебсайтов с реализацией пользовательских тегов, Лицензия: GNU 2 или CDDL 1.0
  17. Apache Cocoon Separation of concerns и component-based вебфремворк. Лицензия: Apache 2.
  18. Apache Struts Apache Struts это открытый фреймворк для создания Java веб приложений. Лицензия: Apache 2.
  19. Apache Sling Иновационный веб фреймворк основанный на JCR и OSGi. Лицензия: Apache 2.
  20. Apache MyFaces Первая открытая реализация JavaServer Faces. Лицензия: Apache 2.
  21. Apache Pivot Apache Pivot это открытая платформа для создания installable Internet applications (IIAs) [другое название rich Internet application]. Лицензия: Apache 2.
  22. Apache Turbine Turbine это основанный на сервлетах фреймворк, который позволяет Java developers быстро разрабатывать вебприложения. Лицензия: Apache 2.
  23. Apache OODT Apache OODT это компонентный вебфреймворк. Лицензия: Apache 2.
Библиотеки для Web разработки
  1. Tobie ua-parser много языковое портирование библиотеки для парсенга параметров user agent браузера. Лицензия: Apache 2/MIT/Perl, рейтинг github'а — 1497.
  2. Ghost Driver это реализация Remote WebDriver Wire протокола, использующая PhantomJS как бэкенд. Лицензия: BSD 2, рейтинг github'а — 1179.
  3. B3log Solo — система управления блогами на Java. Лицензия: Apache 2, рейтинг github'а — 519.
  4. Baasbox это проект для создания backend для мобильных и веб приложений. Лицензия: ?, рейтинг github'а — 499.
  5. Kolorobot Spring MVC 4 Quickstart Maven Archetype — проект-шаблон (архитип) для Maven'a для быстрого создания проектов вебприложений Spring MVC 4. Содержит Spring MVC 4, Servlet 3.0, Thymeleaf, Bootstrap, JPA 2.0, MongoDB, JUnit/Mockito, Spring Security 3.2. Лицензия: ?, рейтинг github'а — 480.
  6. Gargl — Generic API Recorder and Generator Lite (произносится "Gargle") — инструмент для автоматизации любого вебсайта, позволяет записывать любые запросы к сайту и превращать их в повторно используемый код на любом из языком программирования. Лицензия: MIT, рейтинг github'а — 462.
  7. Liferay plugins — набор плагинов для Liferay портала. Лицензия: GNU Lesser 2.1, рейтинг github'а — 444.
  8. Netflix Ribbon это библиотека для создания load balancers. Лицензия: Apache 2, рейтинг github'а — 410.
  9. Gwt bootstrap это библиотека объединяющая виджеты из Twitter Bootstrap и возможности Google Web Toolkit. Лицензия: Apache 2, рейтинг github'а — 409.
  10. Netflix Zuul это сервис (edge service), обрабатывающий все запросы от всех устройств и вебсайтов к backend всех Netflix потоковых приложений, он обеспечивает динамическую маршрутизацию, мониторинг, отказоустойчивость и безопасность… Лицензия: Apache 2, рейтинг github'а — 407.
  11. PrimeFaces — JSF фреймворк который имеет как свободную, так и комерческую версию с полноценной поддержкой. Предоставляет несколько frontend компонентов, Лицензия: Apache 2.
  12. Spring Boot — Микрофреймворк для упрощения разработки новых Spring приложений, Лицензия: Apache 2.
  13. CSSEmbed это небольшая программ/библиотека для автоматического добавления URIs в CSS files. Лицензия: MIT, рейтинг github'а — 407.
  14. Athou commafeed RSS reader, основанный Dropwizard и AngularJS, вдохновленный Google Reader. Лицензия: Apache 2, рейтинг github'а — 1226.
  15. Apache Any23 Anything To Triples (Any23) это библиотека, вебсервис и консольный инструмент для отображения в RDF формате различных данных полученных из веб'а. Лицензия: Apache 2.
  16. Apache Forrest Apache Forrest это фреймворк для представления данных из разных форматов. Лицензия: Apache 2.
Template Engine

Инструменты для замены выражений в шаблонах на реальные данные.

  1. Apache Velocity — Работает с шаблонами для генерации HTML страниц, emails или даже кодогенерация в целом, Лицензия: Apache 2.
  2. Apache FreeMarker — Библиотека поддережки универсальный шаблонов без тяжелых или запутанных зависимостей на другие библиотеки, Лицензия: Apache 2.
  3. Handlebars.java — Семантически подобен шаблонам Mustache, но с меньшим количеством бизнес логии в шаблонах, Лицензия: Apache 2.
  4. Thymeleaf — Цель заменять JSP и работать с XML файлами в целом, Лицензия: Apache 2.
  5. Mustache.java — портирование Mustache.js (систему создания и использования веб.шаблонов с минимальной бизнес логикой) для Java. Лицензия: Apache 2, рейтинг github'а — 733.
  6. Handlebars.java это портирование Handlebars на Java, Handlebars система работы с шаблонами Mustache. Лицензия: Apache 2, рейтинг github'а — 451.
  7. Apache Tiles Apache Tiles это templating фреймворк, упрощающий разработку веб приложений. Лицензия: Apache 2, рейтинг github'а — 451.
CMS и content management
  1. Apache Stanbol Программные компоненты для semantic content management. Лицензия: Apache 2, рейтинг github'а — 451.
  2. Apache JSPWiki Wiki движок на стандартных J2EE компонентах (Java, servlets, JSP). Лицензия: Apache 2, рейтинг github'а — 451.
  3. Apache Portals Движок создания надежного, полностью функционального портала для разных платформ и языко программироваия. Лицензия: Apache 2.
  4. Apache Roller Apache Roller это полностью функциональный, многопользовательский блог движок и сервер, подходящих для самых разных сайтов блогов. Лицензия: Apache 2, рейтинг github'а — 451.
  5. Apache Chemistry Apache Chemistry это открытая реализация спецификации Content Management Interoperability Services (CMIS) для обмена данными между различными CMS. Лицензия: Apache 2.

3. Создания GUI

Библиотеки для создания интерфейс пользователя (кроме веб)

  1. JavaFX — Правопреемник Swing, Лицензия: Oracle, проприетарная.
  2. Scene Builder — Визуальный инструмент разработки GUI для приложений JavaFX Лицензия: Oracle, проприетарная.
  3. SWT — The Standard Widget Toolkit (SWT) это набор бибилиотек и инструментария для создания графических виджетов в платформе Java, Лицензия: Eclipse Public License v1.0.
  4. Lanterna — Легковесная библиотека, реализующая консольно-текстовый GUI, похожий на curses, Лицензия: LGPL 2.1.
  5. Gephi — Кросплатформенная система для визуализации, изменения и управления большими графами, Лицензия: GNU 3 или CDDL 1.0

4. Создание бизнес приложений

Фреймворки и библиотеки для создания бизнес приложений на JavaК оглавлению

  1. Codecademy EventHub — позволяет анализировать бизнес события, чтобы получать KPI, conversion rate и т. п. Бизнес метрики событий. Лицензия: MIT, рейтинг github'а — 1043.
  2. Killbill — свободная платформа билинга и проведения платежей. Лицензия: Apache 2, рейтинг github'а — 902.
  3. Activiti это легковесная система управления бизнес процессами (Business Process Management (BPM) Platform ). Лицензия: Apache 2, рейтинг github'а — 861.
  4. Liferay Portal это свободная вебплатформа для построения бизнес приложений. Лицензия: GNU Lesser 2.1, рейтинг github'а — 739.
  5. Broadleaf Commerce — eCommerce фреймворк для крупных предприятий, основанный на Spring. Лицензия: Apache 2, рейтинг github'а — 518.
  6. Droolsjbpm Drools это приложение Business Rules Management System (BRMS), которое реализует Business Rules Engine (BRE), механизма авторизации, управления правилами (rules), управление приложением (Drools Workbench) и плагин для разработки под Eclipse IDE… Лицензия: Apache 2, рейтинг github'а — 421.
  7. Spring Roo — фреймворк с открытым исходным кодом для быстрого создания бизнес-приложений на Java. Полученные в результате приложения используют общие технологии Java, такие как Spring Framework, Java Persistence API, JSP, Apache Maven и AspectJ. Spring Roo является частью проекта Spring… Лицензия: Apache 2, рейтинг github'а — 399.
  8. Apache OFBiz Apache OFBiz (The Apache Open For Business Project) это открытый и свободный фреймворк для автоматизации бизнес процессов больших предприятий, включает в себя компоненты ERP (Enterprise Resource Planning), CRM (Customer Relationship Management), E-Business / E-Commerce, SCM (Supply Chain Management), MRP (Manufacturing Resource Planning), MMS/EAM (Maintenance Management System/Enterprise Asset Management), POS (Point Of Sale). License: Apache 2.
  9. Apache Portals Движок создания надежного, полностью функционального портала для разных платформ и языко программироваия. Лицензия: Apache 2.
  10. Apache ODE Apache ODE это реализация WS-BPEL спецификации, которая позволяет описывать бизнес процессы и веб сервисы для создания enterprise приложений. Лицензия: Apache 2.

5. Игровые фреймворки (Game Development)

К оглавлению

  1. libgdx Кросплатформенный фреймворк для разработки игр на основе OpenGL (ES), работает под Windows, Linux, Mac OS X, Android, iOS и в браузерах с WebGL. . Лицензия: Apache 2, рейтинг github'а — 6579.
  2. Disunity Экспериментальный набор инструментов для Unity asset и asset bundle files. Лицензия: unlicense.org, рейтинг github'а — 828.
  3. LibGDX/LWJGL lwjgl-basics это минималистская shader-based библиотека для создания 2D LWJGL sprite игр.https://libgdx.badlogicgames.com/. Лицензия: ?, рейтинг github'а — 656.
  4. jMonkeyEngine jMonkeyEngine это 3D игровой движок для Java разработчиков. http://jmonkeyengine.org/ Лицензия: BSD 3, рейтинг github'а — 624.
  5. Jetserver Jetserver высокоскоростной nio сокет Java сервер для multiplayer игр созданный используя Netty и Mike Rettig Jetlang. Лицензия: MIT, рейтинг github'а — 484.
  6. LWJGL 2.X LWJGL 2.X — Легковесная игровая библиотека на Java. http://www.lwjgl.org/ Лицензия: BSD 3, рейтинг github'а — 394.
  7. Ardor3D — 3D игровой движок построенный на jMonkeyEngine 2.0. Лицензия: zlib.
  8. DimensioneX Multiplayer Engine — Игровой движок псевдо-3D броузерных игр. Известные игры: Underworld Online. Лицензия: GPL
  9. PlayN Игровой фреймворк для Java работающий на Windows, Linux, HTML5, Android и iOS. Известные игры: Angry Birds Chrome. Лицензия: Apache 2.0. github star — 97.
  10. Env3D — 3D игровой движок построенный на jMonkeyEngine 2.0. Лицензия: GPL
  11. Jake2 Java порт игрового движка Quake II. Лицензия: GPL
  12. Jogre — JOGRE (Java Online Gaming Real-time Engine) открытый, онлайн, движок реального времени с API работающим только на Java. Лицензия: GPL
  13. Elflight Engine — платный движок для веб игр. Лицензия: Proprietary

6. Полезные библиотеки

К оглавлению

Коллекции, структуры данных и методы работы с ними
  1. Google Guava Очень популярная библиотека от гугла, расширяющая возможности JDK, в том числе добавляющая новые коллекции и методы работы с ними. Работает с JDK1.6 и выше.. Лицензия: Apache 2, рейтинг github'а — 3813.
  2. Apache Commons Collections — Реализует различные дополнительный коллекции и метода работы с ними. Лицензия: Apache 2
  3. Gs collections Дополнение или замена стандартных Java коллекций и методов работающих с коллекциями. Переименована в Eclipse Collections. Лицензия: Apache 2, рейтинг github'а — 1201.
  4. Eclipse Collections (в прошлом Gs collections). Дополнение или замена стандартных Java коллекций и методов работающих с коллекциями. Лицензия: Eclipse Public 1.0., рейтинг github'а — 1201.
  5. javatuples — Кортежи (Tuples), Лицензия: Apache 2
  6. Immutables — Добавлет Scala-подобные классы, Лицензия: Apache 2
  7. OpenHFT Chronicle Queue Chronicle Queue работает так же как обычная Java очередь, однако каждое события сохраняется на жесткий диск. Лицензия: GNU Lesser 3.0, рейтинг github'а — 440.
  8. fastutil — Быстрые и компактные типобезопасные коллекции, Лицензия: Apache 2.
  9. HPPC — Фреймворк по работе с примитивными коллекциями, Лицензия: Apache 2.
  10. Koloboke — Фреймворк по работе с быстрыми Hash sets и hash maps, Лицензия: Apache 2.
  11. Trove — Библиотека работы с примитивными коллекциями, Лицензия: GNU Lesser 2.1.
Date and Time
Dependency Injection и AОП фреймворки

Бибилиотеки и фреймворки, которые реализуют парадигму Inversion of Control.

  1. [Spring Framework](https://github.com/spring-projects/spring-framew ork) Spring — наверное, самый распространенный фреймворк Java в мире, которые в том числе реализует Dependency Injection. Лицензия: Apache 2, рейтинг github'а — 5921.
  2. Dagger и Dagger2 Быстрый и легковесный фреймворк для реализации dependency injector для Android и Java, работающий во время компиляции, а не во времени выполнения, и не использующий рефлексию. Реализует Java спецификацию JSR-330, описывающую dependency injector. Лицензия: Apache 2, рейтинг github'а — 3607, на stackoverflow — 800 вопросов.
  3. Google Guice — Guice (произносится 'juice') это легковесный dependency injection фреймворк для Java 6 и выше, созданный Google. Легкий, но мощный фреймворк, из которого получился Dagger. Лицензия: Apache 2, рейтинг github'а — 1881.
  4. Apache DeltaSpike — фреймворк, расширяющий CDI, Лицензия: Apache 2
  5. HK2 — Легкий и динамичный dependency injection фреймворк, GNU 2/ CDDL 1.0
  6. AspectJ — Аспект-ориентированное расширение, легко встраиваемое в существующие приложения, Лицензия: Eclipse Public 1.0
Работа с консолью и командной строкой
  1. jcommander Библиотека для парсинга параметров командных строк. http://jcommander.org/ Лицензия: Apache 2, рейтинг github'а — 445.
  2. Jline это java библиотека для работы с консолью (ввод, редактирование в emacs и vi режимах), так же как библиотеки Readline и Editline, однако при этом так как Jline почти полностью написана на Java является полностью платформонезависимой… Лицензия: BSD 4, рейтинг github'а — 396.
  3. args4j — Парсер командной строки, Лицензия: MIT
  4. CRaSH — Реализует интерпретатор командной строки (CLI) для запущенныз процессов, Лицензия: GNU Lesser 2.1
Функциональное программирование
  • Библиотеки, реализующие функциональное программирование.*
  1. Cyclops — Добавляет монады, потоковые утилиты и такие возможности функционального программирования как: comprehensions, pattern matching, trampolines и многое другое, Лицензия: MIT
  2. derive4j — Процессор, работающий с Java 8 аннотациями, и фреймворк для реализации: deriving algebraic data types constructors, pattern-matching, morphisms и т.п, Лицензия: GNU 3
  3. Fugue — Функциональное расширение библиотеки Guava, Лицензия: Apache 2.
  4. Functional Java — Добавление функционального программирования в Java. Реализует большое количество простых и сложных видов абстракций для composition-oriented программирования, Лицензия: BSD 3, рейтинг github'а — 478.
  5. Javaslang — Библиотека для реализации функцуонального программирования которая реализаует persistent типы данных и functional control структоры, Лицензия: Apache 2.
  6. jOOλ — Расширение для Java 8, которое стремиться исправить недоработки стандартной реализации лямбда в Java 8, реализующе большое количество нереализованных возможностей функционального программирования и предоставляет богатый набор возможностей к стандартному Stream API, Лицензия: Apache 2.
  7. Retrolambda Поддержка лямба выражений из Java 8 в Java 7, 6 и 5. Лицензия: Apache 2, рейтинг github'а — 1059.
  8. TotallyLazy Библиотека функционального программирования для работы с ленивыми структурами данных (например, такими как Clojure's), в частности с последовательностями (map, filter, fold/reduce...), есть Option, Either, Hamcrest matchers as predicates, ML family of function / method names (Standard ML, oCaml, F#, Scala, Haskell) и т.д., Лицензия: Apache 2, рейтинг github'а — 76.
Реактивное программирование

Библиотеки для разработки reactive приложений.

  1. ReactiveX RxJava библиотека для реализации асинхронного и событийного программирования на основе расширения паттерна Observer для разных языков от ReactiveX.. Лицензия: Apache 2, рейтинг github'а — 6279, на stackoverflow — 1814 вопросов.
  2. Eclipse Vert.x Событийно-ориентированный полиглотный фреймворк для JVM от Eclipse, позволяет писать одновременно на JavaScript, Ruby, Groovy, Java и Python, встраивается в текущие проекты на Java, упрощает мультипоточность. содержит event bus и т.д. и т.п. . Лицензия:  Eclipse Public 1 / Apache 2, рейтинг github'а — 3743, на stackoverflow — 728 вопросов.
  3. Reactive Streams — Реализует стандарт для асинхронной потоковой обработки без проблем с блокировками. Лицензия: Public Domain (CC0), рейтинг github'а — 769.
  4. Reactor — Библиотеки для разработки reactive fast-data приложений. Reactor это полнофункциональная библиотека для разработки быстрых data-driven приложений на JVM. Она предоставляет абстракции для Java, Groovy, Clojure и других JVM языков для создания и обработки событий (event) и простой разработки data-driven приложений. Лицензия: Apache 2.
Безопасность и авторизация

К оглавлению

  1. Scribe Java — простая OAuth библиотека для Java. Лицензия: MIT, рейтинг github'а — 2731.
  2. Spring security oauth — добавлении методов авторизации OAuth2(a) и OAuth3 для Spring вебприложений… Лицензия: Apache 2, рейтинг github'а — 916.
  3. Jasig CAS (Central Authentication Service) — обеспечивает стандартный механизм аутентификация пользователей для веб приложений. Лицензия: Apache 2, рейтинг github'а — 740.
  4. Spring security — Spring фреймворк для авторизации и управлению пользователями и безопасностью приложений. Лицензия: Apache 2, рейтинг github'а — 732.
  5. Play Authenticate — аутентификацонный плагин для Play фреймворка. Лицензия: Apache 2, рейтинг github'а — 646.
  6. Apache Shiro — Обеспечивает аутентификацию, авторизацию, шифрование и управление сеансами, Лицензия: Apache 2.
  7. Bouncy Castle — Универсальная криптографическая библиотека, содержит JCA провайдер, широкий спектр функций по работе с PGP/SMIME, Лицензия: MIT.
  8. Cryptomator — Мультиплатформенное клиент-ориентирование шифрование файлов в облаке, Лицензия: MIT.
  9. Google Keyczar — Легкий в использовании, но безопасный фреймворк шифрования с управлением версиями, Лицензия: Apache 2.
  10. Keycloak — Интеграция с SSO и IDM, как для приложений, работающих в браузере, так и для RESTful веб сервисов, Лицензия: Apache 2.
  11. PicketLink — Umbrella проект для обеспечения безопасности и индетификации пользователей, Лицензия: Apache 2.
  12. Santuario Библиотека реализующая XML Digital Signature спецификацию и XML Encryption спецификацию. Лицензия: Apache 2.
  13. Apache Oltu Реализация OAuth протокола для Java. Лицензия: Apache 2.
  14. Apache Syncope Apache Syncope это открытая система для управления цифровыми идентификторами в enterprise приложениях. Лицензия: Apache 2.
Высокая производительность

Все для высокопроизводительных решенией от коллекций до специальных библиотек.К оглавлению

  1. Agrona — Структуры данных и функции, которые будут полезны для высоконагруженных приложений, Лицензия: Apache 2.
  2. Disruptor — библиотека, обеспечивающая межпоточный обмен сообщениями, Лицензия: Apache 2.
  3. fastutil — Быстрые и компактные типобезопасные коллекции, Лицензия: Apache 2.
  4. GS Collections — Фреймворк коллекций основанный на идеях из Smalltalk, Лицензия: Apache 2.
  5. HPPC — Фреймворк по работе с примитивными коллекциями, Лицензия: Apache 2.
  6. Javolution — Библиотека для систем реального времени и встроенных систем, Лицензия: BSD 2.
  7. JCTools — Набор функций по работе с многопоточности, которые на данный момент отсутствуют в JDK, Лицензия: Apache 2.
  8. Koloboke — Фреймворк по работе с быстрыми Hash sets и hash maps, Лицензия: Apache 2.
  9. Trove — Библиотека работы с примитивными коллекциями, Лицензия: GNU Lesser 2.1.
Сериализация (serializer) и работа с файлами (I/O)

К оглавлению

  1. Square Okio Современный I/O API для Java. Лицензия: Apache 2, рейтинг github'а — 1243.
  2. Square type Легкий, быстрый, транзакционный, файловый FIFO для Android и Java… Лицензия: Apache 2, рейтинг github'а — 1073.
  3. Simple Binary Encoding (SBE) это реализация кодирования и декодирования сообщений приложения бинарный формат для систем требующих очень быстрое время ответа. Лицензия: Apache 2, рейтинг github'а — 612.
  4. MessagePack — реализация быстрой сериализации в компактный бинарный формат для Java. Лицензия: Apache 2, рейтинг github'а — 448.
  5. FlatBuffers — Библиотека сериализации, оптимизированная на сокращение затрат памяти, которая предоставляет доступ к сериализованным данным без разархивирования и парсинга, Лицензия: Apache 2.
  6. FST — JDK совместимая высокопроизводительная библиотека сериализации, Лицензия: Apache 2.
  7. Kryo — Быстрый и эффекстивный фреймворк сериализации, Лицензия: BSD 3.
Логирования

К оглавлению

  1. Graylog2 server свободная и открытая система логирования. Лицензия: GNU 3, рейтинг github'а — 1308.
  2. logback надежный, универсальный, быстрый и гибкий фреймворк для логировани в Java. http://logback.qos.ch/. Лицензия: Eclipse Public 1.0/GNU Lesser 2.1, рейтинг github'а — 497.
  3. slf4j Библиотека предлагает Facade логирования для простого переключения между разными библиотеками логирования (java.util.logging, logback, log4j и т. п.). http://www.slf4j.org/ Лицензия: MIT, рейтинг github'а — 384.
  4. Apache Log4j 2 — Полностью пересмотренная вторая версия Log4j с мощными плагинами и легко настраиваемой архитектурой, Лицензия: Apache 2.
  5. graylog — Открытый агрегатор, подходящий для сложных ролей пользователей и системы привилегий, Лицензия: GNU 3.
  6. Elastic Kibana — Анализ и визуализация логов, некоторые возможносте предоставляются только платно, Лицензия: Apache 2.
  7. Elastic Logstash — Инструменты для управления файлами логов, Лицензия: Apache 2.
  8. Metrics — Собирает метрики через JMX или HTTP и может записать их в базу, Лицензия: Apache 2.
  9. tinylog — Легкий фреймворк логировани со статическими классами логирования, Лицензия: Apache 2.
Bean Mapping and Validation

Фреймворки, упрощающие маппинг одних типов данных в другие (или bean validation).К оглавлению

  1. Dozer — Маппер, который копирует информацию из одного объекта в другой (создавая рекурсивную копию одного объекта в другом) используя аннотации, API или XML конфигурацию, Лицензия: Apache 2, рейтинг github'а — 421.
  2. MapStruct — Код генератор, который упрощает маппинг между разными типами данных, основываясь на конфигурации маппинга, Лицензия: Apache 2.
  3. ModelMapper — ModelMapper это интеллектуальная библиотека для автоматического маппинга одних объектов на другие, Лицензия: Apache 2.
  4. Orika — Orika это Java Bean маппинг фреймворк, который рекурсивно копирует (и при необходимости изменяет) информацию из одного объекта в другой, Лицензия: Apache 2.
  5. Selma — Stupid Simple Statically Linked Mapper. Selma это маппер построенный на аннотациеях классов, Лицензия: Apache 2.
  6. Apache BVal Apache BVal реализует спецификацию Java Bean Validation (JSR303). Лицензия: Apache 2.

7. Изображения и Видео

К оглавлению

  1. Facebook Rebound Это Java библиотека которая моделирует поведение физики реального мира в вашем приложении. Лицензия: BSD, рейтинг github'а — 2219.
  2. Processing Исходный код для Processing Development Environment (PDE) — программному языку для обработки видео и графики. Лицензия: GNU 2, рейтинг github'а — 1896.
  3. JavaCV JavaCV использует конвертер Java-C++ JavaCPP Presets для простого использования библиотек для работы с компьютерным зрением (OpenCV, FFmpeg, libdc1394, PGR FlyCapture, OpenKinect, videoInput, ARToolKitPlus, and flandmark) и реализует классы-утилиты для облегчения работы с этими библиотеками на платформе Java. Лицензия: Apache 2, рейтинг github'а — 503.
  4. imgscalr Простая и эффективная библиотека Java для масштабирования изображений основанная на чистом Java 2D. Лицензия: Apache 2, рейтинг github'а — 451.
  5. webcam-capture Данный проект позволяет получить доступ к USB вебкамере или remote IP / сетевой камере напрямую из Java кода. Лицензия: MIT, рейтинг github'а — 437.
  6. Thumbnailator — Thumbnailator это библиотека генерации высококачественных миниатюр для Java.
  7. zxing открытая разноформатная библиотека для обработки 1D/2D barcode изображений с реализацией на Java и портированием на другие языки. Лицензия: Apache 2, рейтинг github'а — 5314.

8. Кодогенерация и изменения байт кода

Libraries to manipulate bytecode programmatically.К оглавлению

  1. Google Auto — коллекция генераторов исходного кода в Java… Лицензия: Apache 2, рейтинг github'а — 1442.
  2. Square Javapoet — библиотека для генерации исходных кодов классов Java. Лицензия: Apache 2, рейтинг github'а — 1057.
  3. Byte buddy — динамическая генерация кода в Java платформе. http://bytebuddy.net/ Лицензия: Apache 2, рейтинг github'а — 473.
  4. ASM — Универсальная, низкоуровневая библиотека для изменения байткода и анализа, Лицензия: BSD 3, Лицензия: Apache 2.
  5. Byteman — Изменение байткода во время выполнения используя DSL правила в основном для целей тестирования и отладки, Лицензия: LGPL 2.1.
  6. Javassist — Попытка упростить редактирование байткода,, Лицензия: Apache 2 or LGPL or later 2.1 or Mozilla Public License 1.1.
  7. ADT4J — JSR-269 код генератор для algebraic data types, Лицензия: BSD 3
  8. Auto — Коллекция генераторов исходного кода, Лицензия: Apache 2
  9. JHipster — генератор кода, которые позволяет создавить приложения основанные на Spring Boot и AngularJS, Лицензия: Apache 2
  10. cglib — Библиотека генерации байткода, Лицензия: Apache 2.

9. Фреймворки для создания распределенных и отказоустойчивых приложений

Библиотеки и фреймворки для создания распределенных и отказоустойчивых приложений.К оглавлению

  1. Akka — Набор инструментов и среда выполнения для создания многопоточных, распределенных и устойчивых к ошибкам событийно-ориентированных приложений, Лицензия: Apache 2.
  2. Apache Storm — Система вычислений в режиме реального времени, Лицензия: Apache 2.
  3. Apache ZooKeeper — Системы координации для развертывания конфигураций, синхроизации и регистрации имен для больших распределенных систем, Лицензия: Apache 2.
  4. Alibaba Dubbo Dubbo это фреймворк для разработки распределенных приложений с возможностями передачи сообщений, кластеризации, работе с событиями, подписками и т. п. с высокопроизводительным RPC. Лицензия: Apache 2, рейтинг github'а — 1917.
  5. Netflix Curator Curator Framework это фреймворк для работы с Apache ZooKeeper сервером. Лицензия: Apache 2, рейтинг github'а — 1158.
  6. Axon Framework — Фреймворк для создания CQRS приложений, Лицензия: Apache 2.
  7. Hazelcast — Легко расширяемый in-memory datagrid, Лицензия: Apache 2.
  8. Netflix Hystrix — Предоставляет возможность создавать системы, устойчивые к ошибкам и с минимальным откликом. Библиотека, для корректной обработки отказов сервисов, исключительных ситуаций в распределенных системах, с помощью добавления в систему изолированных точек доступа к сторонним сервисам и распределенным системам, ограничением вероятности каскадных ошибок при отказе одного из сервисов и т.д., рейтинг github'а — 3571. Лицензия: Apache 2.
  9. JGroups — Набор инструментов для надежного обмена сообщениями и создания кластеров, Лицензия: Apache 2.
  10. Orbit — Виртуальные акторы (Virtual Actors), добавления дополнительного уровня абстракции к традиционных акторам, Лицензия: BSD 3.
  11. Quasar — Легковесные потоки и акторы (actors) для JVM, Лицензия: Eclipse Public License v1.0 или LGPL 3.0.
  12. Storm contrib storm-contrib это свободный репозиторий с модулями, использующими Storm. Они включают разные spouts/bolts для интеграции с другими системами (Redis, Kafka, MongoDB, etc), и код для решений типовых задач Storm разработчиков… Лицензия: Eclipse Public 1.0, рейтинг github'а — 504.
  13. JADE — Фреймворк и экосистема для разработки и отладки multi-agent систем, Лицензия: GNU Lesser 2.0
  14. Apache River Apache River фреймворк для разработки JINI сервисов. Лицензия: Apache 2.
  15. Apache Tuscany Apache Tuscany это фреймворк для разработки Service Component Architecture (SCA) приложений. Лицензия: Apache 2.

10. Наука

Библиотеки для научных расчетов и анализа.К оглавлению

  1. DataMelt — Среда для научных расчетов, анализа и визуализаци данных, Лицензия: GNU 3.
  2. JGraphT — Графическая библиотека, которая предоставляет объект и алгоритмы из математической теории графов, Лицензия: Eclipse Public License или LGPL 2.1
  3. JScience — Предоставляет набор классов для работы с научными измерениями и объектами, Лицензия: BSD 2.
  4. Michael Thomas Flanagan's Java Scientific Library коллекция классов и библиотек для научных целей написанных Michael Thomas Flanagan. Лицензия: только для некомерческого использования, без права распостраненния исходного кода.

11. OSGI

  1. ACE — distribution фреймворк для OSGi систем и не только. Лицензия: Apache 2.
  2. Aries данный проект состоит из набора pluggable Java компонент для OSGi модели. Лицензия: Apache 2.
  3. Felix OSGi фреймворк. Лицензия: Apache 2.
  4. Karaf OSGi фреймворк для серверных приложений. Лицензия: Apache 2.

II. Базы данных, поисковые системы, Big data и машинное обучение

1. Базы данных и хранилища

К оглавлению

  1. Thinkaurelius Titan — распределенная графическая база данных. Лицензия: Apache 2, рейтинг github'а — 2846.
  2. Apache Cassandra — зеркало для Apache Cassandra — база данных с высокой доступностью и высокой расширямостью и отличной производительностью. Лицензия: Apache 2, рейтинг github'а — 2155.
  3. Orientdb это первая база данных с множественной моделью и поддержкой и документного хранилища и графов. Лицензия: Apache 2/CDDL 1/Eclipse Distribution 1.0, рейтинг github'а — 1880.
  4. Neo4j — одна из самых популярных в мире графических баз данных. Лицензия: GNU 3/ GNU AGPLv3, рейтинг github'а — 1787.
  5. Mapdb содержит мультипоточные реализации Maps, Sets и Queues, которые могут сохраняться на жестком диске или в off-heap-memory. Это быстрый и простой способ создать embedded Java базу данных. http://www.mapdb.org/. Лицензия: Apache 2, рейтинг github'а — 1484.
  6. Voldemort свободный клон Amazon's Dynamo, распределенное key-value хранилище. Лицензия: Apache 2, рейтинг github'а — 1480.
  7. Amplab Tachyon это распределенное хранилище, ориентированное на работу с оперативной памятью и разделении данных между кластерами. Лицензия: Apache 2, рейтинг github'а — 1459.
  8. Opentsdb это распределенная и масштабируемая база данных, работающих с временными рядами (Time Series Database TSDB) работающая поверх Hbase. Лицензия: GNU 3, рейтинг github'а — 1336.
  9. Hazelcast Hazelcast свободное In-Memory хранилище. Лицензия: Apache 2, рейтинг github'а — 1167.
  10. Tinkerpop Blueprints Добавление Blueprint Property Graph Model Interface в различные графические базы данных. Лицензия: BSD 3, рейтинг github'а — 1083.
  11. Apache Lucene solr Зеркало Apache Lucene & Solr — тестового поисковой движка. Лицензия: Apache 2, рейтинг github'а — 1069.
  12. Java Chronicle Java Indexed Record Chronicle — библиотека, хранения данных, работы с сообщениями и событиями.. Лицензия: Apache 2, рейтинг github'а — 970.
  13. Torodb ToroDB база данных. Лицензия: GNU AGPLv3, рейтинг github'а — 951.
  14. Crate CRATE: Your Elastic Data Store — распределенная система, создающая бэкенд (или кластер) на основе nosql баз данных и свободных компонент (Presto, Elasticsearch, Lucene, Netty), реализует синхронизацию, репликацию, маштабируемость и разделение данных (data synchronization, sharding, scaling, and replication). Также предоставляем sql подобный язык запросов для кластера. https://crate.io/.Лицензия: Apache 2, рейтинг github'а — 925.
  15. Linkedin Pinot Linkedin pinot — Распределенный OLAP хранилище, работающее в режиме реального времени, которое используется Linkedin для получение аналитических данных в режиме реального времени… Лицензия: Apache 2, рейтинг github'а — 854.
  16. Solandra Solandra — распределенный real-time поисковый движок построенный на основе Apache Solr и Apache Cassandra… Лицензия: Apache 2, рейтинг github'а — 808.
  17. Voltdb VoltDB это горизонтально масштабируемая in-memory SQL RDBMS база данных, разработанная для приложений которым требует особенно высокая пропускная способность базы данных на чтение и запись. Лицензия: GNU AGPLv3, рейтинг github'а — 586.
  18. Leveldb Портирование LevelDB на Java. LevelDB это быстрое key-value хранилище, разработанное Google. Лицензия: Apache 2, рейтинг github'а — 525.
  19. Kairosdb KairosDB — быстрая распределенная расширяемая time series база данных, написанная поверх Cassandra.. Лицензия: Apache 2, рейтинг github'а — 485.
  20. Linkedin Sensei Распределенная поисковая база данных для работы в реальном времени. Лицензия: Apache 2, рейтинг github'а — 464.
  21. Elephantdb Распределенная база данных, специализирующая на экспорте key/value данных из Hadoop. Лицензия: BSD 3, рейтинг github'а — 464.
  22. Apache Drill Зеркало Apache Drill. Без схемовый движок обработки SQL запросов для Hadoop, NoSQL и облачных сервисов. Лицензия: Apache 2, рейтинг github'а — 448.
  23. Tinkerpop Rexster это сервер графических баз данных, который может передать любые данные графов через REST и бинарный протокол, называемый RexPro.. Лицензия: BSD 3, рейтинг github'а — 402.
  24. Tomcat redis session manager Основанное на Redis простое хранилище сессий для Apache Tomcat. Лицензия: MIT, рейтинг github'а — 396.
  25. Embulk это открытый пакетный (bulk) загрузчик данных, который помогает трансформировать данные между разными базами данных, хранилищ, файловых форматов и облачных сервисов. Лицензия: Apache 2, рейтинг github'а — 394.
  26. h3 — Небольшая база данных SQL отличается работой в in-memory, Лицензия: Mozilla Public License 1.1. и Eclipse Public License v1.0.
  27. Apache Empire-db Apache Empire-db is a lightweight relational database abstraction layer and data persistence component. Лицензия: Apache 2.
  28. Apache Ignite Apache Ignite is an In-Memory Data Fabric providing in-memory data caching, partitioning, processing, and querying components. Лицензия: Apache 2.

Распределенные базы данных.

  1. Apache Cassandra — зеркало для Apache Cassandra — база данных с высокой доступностью и высокой расширямостью и отличной производительностью. Лицензия: Apache 2, рейтинг github'а — 2155.
  2. Apache HBase — Hadoop хранилище для больших данных. Лицензия: Apache 2.
  3. Druid — это column-oriented хранилище и система обработки в реальном времени для обработки потоковых и пакетной информации и интегрированная с Samza, Kafka, Storm, and Hadoop. Лицензия: Apache 2, рейтинг github'а — 1846.
  4. Infinispan — Высокопроизводительное key/value хранилише, используемое для кэширования. Лицензия: Apache 2.
  5. OpenTSDB — это распределенная и масштабируемая база данных, работающих с временными рядами (Time Series Database TSDB) работающая поверх Hbase. Лицензия: GNU 3, рейтинг github'а — 1336.

2. Структуры данных

Efficient and specific data structures.

  1. Apache Avro — Формат обмена данными с такими возможностями как: динамическая типизация, отсутствия необходимости устанавливать ID вручную, untagged data, Лицензия: Apache 2.
  2. Apache Orc — Быстрый и эффективный столбчатый (сolumnar) формат хранения данных для работы в основанных на hadoop системах, Лицензия: Apache 2.
  3. Apache Parquet — столбчатый (сolumnar) формат хранения данных основанный на использовании алгоритмов из "Dremel paper" от Google, Лицензия: Apache 2.
  4. Apache Thrift — Формат обмена данными, созданный в Facebook, Лицензия: Apache 2.
  5. Persistent Collection — Persistent и неизменямый аналог Java Collections Framework, Лицензия: MIT.
  6. Protobuf — Формат обмена данными, предложенный Google, Лицензия: BSD 3.
  7. SBE — Simple Binary Encoding, один из самых быстрых форматов обмена сообщениями, Лицензия: Apache 2.
  8. Wire — Чистый, легковесный protocol buffers, Лицензия: Apache 2.

3. Поисковые системы

К оглавлению

  1. Elasticsearch — одна из самых популярных систем распределенного облачного поиска. Распределенная, mультиарендная (multitenant-capable) полнотекстовая поисковая система с RESTful веб интерфейсом, не требующая схемы данных, основанная на JSON документах.. Лицензия: Apache 2, рейтинг github'а — 11833.
  2. Linkedin Indextank Engine Проект IndexTank это поисковый движок, поддерживающий возможности вроде переменных (boosts), категорий (facets), предложения, автокомплит и т. п… Лицензия: Apache 2, рейтинг github'а — 788.
  3. Apache Solr Зеркало Apache Solr. Apache Solr это поисковый сервер, основанный на Apache Lucene поисковой библиотеке, данный поисковый движок оптимизирован для высоконагруженных систем.. Лицензия: Apache 2, рейтинг github'а — 486.
  4. Linkedin Cleo Linkedin Cleo это гибкое библиотека для создания умных подсказок поиска… Лицензия: Apache 2, рейтинг github'а — 478.
  5. Elasticsearch cloud aws Плагин для работы ElasticSearch с Amazon Web Service (AWS) облаками. Лицензия: Apache 2, рейтинг github'а — 435.
  6. Elasticsearch analysis ik The IK Analysis плагин интеграции с Lucene IK анализаторов для elastic search, поддерживающий пользовательские словари. Лицензия: ?, рейтинг github'а — 395.
  7. Apache ManifoldCF — приложение для передачи данных между репозиториями и поисковыми индексами разных систем. Лицензия: Apache 2, рейтинг github'а — 435.
  8. Lemur Project Lemur проект разрабоатывает поисковый движок, анализатор текста, плагин браузеров, включает Indri search engine и ClueWeb09 dataset. Лицензия: BSD License

4. Клиенты и драйверы баз данных

К оглавлению

  1. Facebook Presto Библиотека для работы с распределенными SQL запросами к big data источникам (Cassandra, Hive, Kafka, MySQL, PostgreSQL и т.п.). . Лицензия: Apache 2, рейтинг github'а — 3603.
  2. Jedis Невероятно маленький и эффективный Redis Java клиент. Лицензия: MIT, рейтинг github'а — 2495.
  3. Tinkerpop Gremlin это язык для работы с графами и разными графическими базами данных (обхода графов, запросы к графам, манипуляции и т. п.)… Лицензия: BSD 3, рейтинг github'а — 1370.
  4. Mongodb Java Driver Java клиент для MongoDB. Лицензия: Apache 2 / Creative Commons Attribution, рейтинг github'а — 1276.
  5. Yahoo Mysql_perf_analyzer Анализатор производительности MySQL. Лицензия: Apache 2, рейтинг github'а — 1082.
  6. Airbnb Airpal Веб UI для PrestoDB. Лицензия: Apache 2, рейтинг github'а — 1074.
  7. Mongodb hadoop MongoDB клиент для интеграции с Hadoop. Лицензия: ?, рейтинг github'а — 937.
  8. Elasticsearch jdbc JDBC поддержка для Elasticsearch. Лицензия: Apache 2, рейтинг github'а — 867.
  9. Flyway — инструмент по миграции баз данных. http://flywaydb.org/. Лицензия: Apache 2, рейтинг github'а — 851.
  10. Elasticsearch river mongodb — MongoDB River Plugin для ElasticSearch, использует MongoDB как хранилище для ElasticSearch. Лицензия: Apache 2, рейтинг github'а — 794.
  11. Netflix Astyanax Cassandra Java клиент. Лицензия: Apache 2, рейтинг github'а — 735.
  12. Liquibase Liquibase — система, позволяющая проводить миграции и обновления баз данных, генерировать SQL скрипты, документацию изменений баз данных, проводить рефакторинг и т. д. http://www.liquibase.org/. Лицензия: Apache 2, рейтинг github'а — 734.
  13. Mongodb Morphia Библиотека для простой сериализации объектов Java в документы MongoDB. Лицензия: Apache 2, рейтинг github'а — 725.
  14. Couchdb lucene Полнотекстовый поиск CouchDB документов, используя Lucene. Лицензия: Apache 2, рейтинг github'а — 639.
  15. Forcedotcom Phoenix Phoenix это SQL оболочка поверх Hbase с JDBC драйвером. Phoenix обеспечивает очень быстрый отклик (в течении миллисекунд), в отличии от пакетных операций map/reduce. Лицензия: BSD 3, рейтинг github'а — 507.
  16. Variety Анализатор схемы MongoDB. Лицензия: MIT, рейтинг github'а — 505.
  17. Redisson Redisson — добавляет Java структуры данных (Set, SortedSet, Map, ConcurrentMap, List, Queue, BlockingQueue, Deque, Lock, AtomicLong, CountDownLatch, Publish / Subscribe, HyperLogLog, Redis pipelining) в Redis сервер. И является высокопроизводительным и неблокирующим Java Redis клиентом. Лицензия: Apache 2, рейтинг github'а — 483.
  18. Netflix Priam Co-Process это набор инструментов для работы с Cassandra (архимирование и востановление, работа с токенами и т. д.). Лицензия: Apache 2, рейтинг github'а — 481.
  19. Datastax Java driver Java клиент для Apache Cassandra и DataStax. Лицензия: Apache 2, рейтинг github'а — 480.
  20. Memcached Java Client java клиент для memcached. Лицензия: BSD 4, рейтинг github'а — 436.
  21. Spring data mongodb Java клиент к MongoDB для фреймворка Spring. Лицензия: Apache 2, рейтинг github'а — 394.
  22. Apache Phoenix — Высокопроизводительный слой для реляционных баз данных поверх HBase для систем с минимальным откликом, Лицензия: Apache 2.
  23. FlexyPool — Добавляет метрики и отказоустойчивые стратегии для наиболее популярных пулов соединией с базами данных, Лицензия: Apache 2.
  24. LightAdmin — Легко настраиваемя CRUD UI библиотека для быстрой разработки приложений, Лицензия: Apache 2.

5. Маппинг объектов в базы данных (ORM и т. п.)

К оглавлению

  1. HikariCP HikariCP — быстрая, надежная и легкая библиотека для создания JDBC connection pool с минимальными накладными расходами. Лицензия: Apache 2, рейтинг github'а — 1542.
  2. Mybatis 3 MyBatis это фреймворк маппинга Java объектов в базы данных. Соединяет Java объектами с определенными хранимыми процедурами или sql запросами. Лицензия: Apache 2, рейтинг github'а — 1428.
  3. Hibernate orm Hibernate's ORM фреймворк, один из самых популярных в Java, надежный, проверенный и широкоиспользуемый фреймворк с большим и активным сообществом. http://hibernate.org/orm/ Лицензия: GNU Lesser 2.1, рейтинг github'а — 1275.
  4. JOOQ JOOQ — решение по простой интеграции и мапингу Java приложений с популярными базами данных, такими как Oracle, Microsoft SQL Server, IBM DB2, или SAP Sybase. http://www.jooq.org/. Лицензия: Apache 2, рейтинг github'а — 830.
  5. Querydsl Querydsl это Java фреймворк позволяющий конструировать типобезопасные SQL-подобные запросы для множества backends включая JPA, MongoDB и SQL. http://www.querydsl.com/. Лицензия: Apache 2, рейтинг github'а — 570.
  6. Kundera ORM поддерживающий спецификации JPA 2.1 для полиглот маппинга в различные NoSQL хранилища. Лицензия: Apache 2, рейтинг github'а — 490.
  7. Spring data jpa Spring Data Jpa — обертка Spring фреймворка над JPa провайдерами. Лицензия: Apache 2, рейтинг github'а — 459.
  8. Jdbi jDBI предлагает удобный интерфейс над SQL операциями в Java. http://jdbi.org/.Лицензия: Apache 2, рейтинг github'а — 458.
  9. ActiveJDBCActiveJDBC это Java реализация Active Record шаблона проектирования. Вдохновлен ActiveRecord ORM в Ruby on Rails… Лицензия: Apache 2, рейтинг github'а — 230.
  10. Vibur DBCP — Библиотека реализующая JDBC пул соединений с дополнительными средствами мониторинга производительности, Лицензия: Apache 2.
  11. Ebean — Предоставляет простой и быстрой доступ к данным, Лицензия: Apache 2.
  12. EclipseLink — Поддерживает большое количество стандартов ORM: JPA, JAXB, JCA и SDO, Лицензия: Eclipse Public License v1.0 и BSD 3.
  13. OrmLite — Легковесный пакет избегающий усложнений и перерасхода ресурсов других ORM решений, , Лицензия: ISC.
  14. Apache Cayenne Простая в использовании Java ORM. Лицензия: Apache 2.
  15. Apache OpenJPA Реализация Java Persistence API спецификации. Лицензия: Apache 2.
  16. [Apache MetaModel]( http://metamodel.apache.org) Apache MetaModel это универсальный способ делать запросы и получать данные из различных источнико включая: Relational (JDBC) databases, CSV files, Excel spreadsheets, XML files, JSON files, Fixed width files, MongoDB, Apache CouchDB, Apache HBase, Apache Cassandra, ElasticSearch, OpenOffice.org databases, Salesforce.com, SugarCRM и даже коллекции из обычных Java объектов (POJOs). Лицензия: Apache 2.

6. Системы, для обработки данных (работа с грязными данными, анализ и т.п.)

К оглавлению

  1. Storm — распределенная и устойчивая к ошибкам обработка данных в реальном времени: потоковая обработка, непрерывные вычисления, распределенный RPC и другое. Лицензия: Apache 2, рейтинг github'а — 8636.
  2. OpenRefine — инструменты для обработки «грязных» плохо структурированных данных и улучшения их. Выполняет очистку данных, преобразование, связывает с базой данных и позволяет обращаться к данным с помощью web сервисов. Лицензия: BSD, рейтинг github'а — 2939.
  3. Addthis Stream lib — библиотека Java для групповых операций на потоковыми данными, таких как оценка мощности (подсчет количества элементов), определение членов множества, оценка частоты, получения первых N элементов и т.п… Лицензия: Apache 2, рейтинг github'а — 1145.
  4. HdrHistogram (A High Dynamic Range (HDR) Histogram ) — выполняет запись данных, их анализ и построение сложных графиков (Histogram). Лицензия: BSD 2, рейтинг github'а — 672.
  5. HazyResearch DeepDive это система выделения значений из темных данных. Темные данные, как темная материя, имеют большой вес из текста, таблиц, графиков и изображений и не имеют четкой структуры, что делает их почти не обрабатываемыми обычными способами. Лицензия: Apache 2, рейтинг github'а — 531.
  6. Apache Incubator Zeppelin это расположенный в веб notebook (записная книжка?), который позволяет проводить анализ данных, их визуализацию и создавать документы, содержащие SQL, Scala и т.п.. Лицензия: Apache 2, рейтинг github'а — 463.
  7. Seldon Server предоставляет реализацию REST API интерфейса для выдачи рекомендаций по контенту и аналитических предсказаний. Лицензия: Apache 2, рейтинг github'а — 453.
  8. Pulsar — открытая аналитическая платформа, работающая в реальном времени. Лицензия: GNU 2.0, рейтинг github'а — 435.
  9. Suro: Netflix's Data Pipeline — это сервис для сбора, агрегации и управления большим количеством разнообразных событий, включая данные логов.. Лицензия: Apache 2, рейтинг github'а — 405.
  10. Apache UIMA Annotator components and a scalable integration and deployment framework for Unstructured Information analysis. Лицензия: Apache 2.

7. Большие данные (big data)

К оглавлению

Фреймворки и библиотеки
  1. Apache Storm — зеркало для Apache Storm — свободную и распределенную систему обработки данных в реальном времени, аналог Hadoop, но для быстрой потоковой обработки данных, может использоваться с любым языком программирования… Лицензия: Apache 2, рейтинг github'а — 2098.
  2. h3o = добавляет математические операции в Hadoop, h3o позволяет быстро вычислять статистику, машинное обучение и математические операции для bigdata. Лицензия: Apache 2, рейтинг github'а — 1725.
  3. Cloudera Oryx это простая инфраструктура, обеспечивающая высоко нагруженную систему машинного обучения, анализа и выдачи прогнозов в режиме реального времени, работающая с Apache Hadoop, HTTP REST API и реализующая lambda architecture.. Лицензия: Apache 2, рейтинг github'а — 1142.
  4. Twitter Elephant bird — набор коллекций и алгоритмов от Twitter'а, для работы с Hadoop lzo, Apache Thrift, Hadoop, Pig, Hive, и HBase… Лицензия: Apache 2, рейтинг github'а — 861.
  5. Apache Hadoop — зеркало Apache Hadoop. Систему для обработки Bigdata. Лицензия: Apache 2, рейтинг github'а — 803.
  6. Google Mr4c это фрейворк, который позволяет запускать нативный код в Hadoop. Лицензия: GNU Lesser 3, рейтинг github'а — 702.
  7. Alibaba Jstorm — распределенная и устойчивая к ошибкам система вычисления результатов в реальном времени, вдохновленная Apache Storm,… Лицензия: Apache 2, рейтинг github'а — 654.
  8. Etsy Oculus находит аномальную корреляцию компонент системы Kale system. После того, как вы ввыбрали интересную или аномальную метрику, Oculus найдете все другие метрики в вашей системе, которые выглядят похоже… Лицензия: MIT, рейтинг github'а — 618.
  9. Linkedin Datafu это Hadoop библиотека для крупномасштабных систем обработки данных, на данный момент это проект в Apache Incubator. Лицензия: Apache 2, рейтинг github'а — 570.
  10. Linkedin Gobblin это универсальный интеграционный фреймворк работающий на Hadoop для получения, трансформации и загрузки большого количества данных в различные источники данных, такие как базы данных, rest APIs, FTP/SFTP сервера и т.д.. Лицензия: Apache 2, рейтинг github'а — 547.
  11. Apache Flink — зеркало Apache Flink. Apache Flink это открытая платформа для обработки потоковых и пакетных данных. Лицензия: Apache 2, рейтинг github'а — 475.
  12. Oryx 2 — реализация лямбда архитектуры для Apache Spark и Apache Kafka, но со специализацией на машинном обучении в реальном времени. Лицензия: Apache 2, рейтинг github'а — 456.
  13. Yahoo SAMOA (Scalable Advanced Massive Online Analysis) — открытая платформа для потоковой обработки больших данных (mining big data). Лицензия: Apache 2, рейтинг github'а — 394.
  14. Apache Curator Набор Java библиотека, которые облегчают использование Apache ZooKeeper.Лицензия: Apache 2.
  15. Apache Hama Hama это эффективный и легко расширяемый универсальный BSP computing движок.Лицензия: Apache 2.
  16. Apache Falcon Платформа управления данными и вычислениями для Hadoop.Лицензия: Apache 2.
  17. Apache Knox A REST API Gateway for Hadoop Services. Лицензия: Apache 2.
  18. Apache Flume Apache Flume это распределенная, надежная и доступная система для эффективного сбора, агрегации и сохранения больших объемов логов из множества различных источников в централизованное хранилище данных. Лицензия: Apache 2.
  19. Apache Tajo Tajo это система обработки больших данных в Hadoop для обработки web-scale набора данных. Лицензия: Apache 2.
  20. Apache Tez Фреймвор для обработки сколь угодно сложных направленных ациклических графов (DAGs) в задачах обработки данных. Лицензия: Apache 2.
  21. Apache REEF Apache REEF (Retainable Evaluator Execution Framework) это маштабируемый фреймворк, который облегчает разработку Big Data приложений на основе менеджеров ресурсов таких как Apache YARN или Mesos. Лицензия: Apache 2.
  22. Apache Pig Apache Pig это платформа для анализа больших наборов данных в Hadoop. Лицензия: Apache 2.
Хранилища, базы данных, Sql-подобные движки, поисковые система для big data
  1. Druid это column-oriented хранилище и система обработки в реальном времени для обработки потоковых и пакетной информации и интегрированная с Samza, Kafka, Storm, and Hadoop. Лицензия: Apache 2, рейтинг github'а — 1846.
  2. Apache Hive — зеркало Apache Hive. Фреймворк для созданий SQL подобного языка запросов для Hadoop. https://hive.apache.org/.Лицензия: Apache 2, рейтинг github'а — 619.
  3. Apache Kylin это открытая распределенная аналитическая система, которая обеспечивает SQL интерфейс и OLAP отчеты для Hadoop… Лицензия: Apache 2, рейтинг github'а — 504.
  4. Elasticsearch hadoop — интеграция поиска и анализ ElasticSearch в Hadoop. Лицензия: Apache 2, рейтинг github'а — 457.
  5. Facebook Presto Библиотека для работы с распределенными SQL запросами к big data источникам (Cassandra, Hive, Kafka, MySQL, PostgreSQL и т.п.). Лицензия: Apache 2, рейтинг github'а — 3603.
  6. [Apache MetaModel]( http://metamodel.apache.org) Apache MetaModel это универсальный способ делать запросы и получать данные из различных источнико включая: Relational (JDBC) databases, CSV files, Excel spreadsheets, XML files, JSON files, Fixed width files, MongoDB, Apache CouchDB, Apache HBase, Apache Cassandra, ElasticSearch, OpenOffice.org databases, Salesforce.com, SugarCRM и даже коллекции из обычных Java объектов (POJOs). Лицензия: Apache 2.
  7. Apache Accumulo Apache Accumulo основана на идее BigTable, предложенной Google, и работает на Apache Hadoop, Zookeeper и Thrift. Лицензия: Apache 2.
  8. Apache Gora предлагает in-memory модель данных с маппингов в big data. Gora подерживает маппинг в column stores, key value stores, document stores и RDBMSs. Лицензия: Apache 2.
  9. [Apache Sqoop] Apache Sqoop(TM) инструмент для переноса данных между Apache Hadoop и хранилищами данных, таких как реляционный базы данных.(http://sqoop.apache.org) Лицензия: Apache 2.
  10. Giraph Apache Giraph это система обработи графов, построенная над Hadoop. Лицензия: Apache 2.
  11. Impala — Запросы в реальном времени к Hadoop. рейтинг github'а: 1550 Лицензия: Apache 2.
Мониторинг, тестирование и управления кластерами big data серверов
  1. Twitter Ambrose это платформа для визуализации и мониторинга в реальном времени MapReduce data workflows.. Лицензия: Apache 2, рейтинг github'а — 1024.
  2. Umongo — десктопное приложение для просмотра и управления вашим MongoDB кластером. Лицензия: Apache 2, рейтинг github'а — 495.
  3. Apache Ambari Упрощает управление и мониторинг Apache Hadoop clusters. Предоставляет веб UI интерфейс и RESTful APIs. Лицензия: Apache 2.
  4. Apache Chukwa Chukwa это открытая систнам для мониторига больших распределенных систем. Лицензия: Apache 2.
  5. Apache Bigtop Bigtop это проект для Infrastructure Engineers и Data Scientists котокрые ищут инструменты для тестирования, конфигурирования и управления big date компонентами. Лицензия: Apache 2.
  6. Apache BookKeeper BookKeeper это replicated система логирования для big datar. Лицензия: Apache 2.
  7. Apache Crunch Предоставляет фреймворк для написания, тестирования и запуска MapReduce pipelines. Лицензия: Apache 2.
  8. Apache MRUnit Apache MRUnit это Java библиотека для создания unit тестов, для тестирования Apache Hadoop map reduce jobs. Лицензия: Apache 2.
  9. Apache Oozie Oozie это workflow система расписания для управления Apache Hadoop jobs. Лицензия: Apache 2.

8. Машинное обучение и нейроные сети (Machine Learning)

К оглавлению

  1. Airbnb Aerosolve Библиотека для машинного обучения, дружелюбная к пользователям (простая в настройке и т. п.). Лицензия: Apache 2, рейтинг github'а — 1672.
  2. Smile SmileMiner (Statistical Machine Intelligence and Learning Engine) — набор Java библиотек различных алгоритмов машинного обучения. Лицензия: Apache 2, рейтинг github'а — 1519.
  3. Deeplearning4j Deep Learning нейронная сеть, написанная на Java и Scala, с интеграцией с Hadoop, Spark и другими backends, которые могут работать как с центральным, так и с графическим процессором. http://deeplearning4j.org/.Лицензия: Apache 2, рейтинг github'а — 1172.
  4. Libsvm "Libsvm это библиотека для мамашиного обучения на основе support vector machines (support vector networks), поддерживает SVM classification and regression, C-SVM classification, nu-SVM classification, one-class-SVM, epsilon-SVM regression, and nu-SVM Regression. Лицензия: BSD 3, рейтинг github'а — 812.
  5. Neuralnetworks Алгоритмы машинного обучения и нейронных сетей с использованием GPU процессора. Лицензия: MIT, рейтинг github'а — 583.
  6. Datumbox framework Datumbox это фреймворк для быстрой разработки систем машинного обучения и анализа статистики. Лицензия: Apache 2, рейтинг github'а — 525.
  7. Apache Mahout Зеркало Apache Mahout. Задачей проекта Apache Mahout является создание окружения для быстрой разработки масштабируемых и производительных систем машинного обучения. Реализует хорошо расширяемые алгоритмы машинного обучения специализированные на применении фильтрации, кластеризации и классификации. https://mahout.apache.org/.Лицензия: Apache 2, рейтинг github'а — 492.
  8. Encog java core Encog это фреймворк для машинного обучения предоставляющий большое число алгоритмов и технологий машинного обучения (нейронные сети, генетические алгоритмы и т. д.). Лицензия: Apache 2, рейтинг github'а — 394.
  9. Apache Flink — зеркало Apache Flink. Apache Flink это открытая платформа для обработки потоковых и пакетных данных. https://flink.apache.org/ Лицензия: Apache 2, рейтинг github'а — 475.
  10. Apache Hadoop — зеркало Apache Hadoop. Систему для обработки Bigdata (больших данных с помощью кластеров на простом железе). http://hadoop.apache.org/ Лицензия: Apache 2, рейтинг github'а — 803.
  11. Apache Spark — Фреймворк для анализа данных, используя класстер для вычислений, Подпроект: MLlib — библиотека машинного обучения для Spark.Лицензия: Apache 2.
  12. DeepDive — Создает структурированную информацию из неструктурированных данных и интегрирует её с существующими базами данных, Лицензия: Creative Commons Attribution 4.0.
  13. h3o = добавляет математические операции в Hadoop, h3o позволяет быстро вычислять статистику, машинное обучение и математические операции для bigdata.http://h3o.ai/ Лицензия: Apache 2, рейтинг github'а — 1725.
  14. JSAT — Алгоритмы для пре-процессинга, классификация, регрессия, и кластеризация поддерживающие многопоточное выыполнение, Лицензия: GNU 3.
  15. Weka — Коллекция алгоритмов для data mining задач от пре-процессинга до визуализации, Лицензия: GNU.
  16. Protégé — Реализует редактов онтология и фреймворк для экспертных систем, Лицензия: BSD 2
  17. EvA2 — Фреймворк для использования эволюционных алгоритмов- ранее известный как JavaEvA/EvA. Лицензия: GNU Lesser 3.
  18. htm.java — Hierarchical Temporal Memory implementation in Java — это официальный сделанный сообществом порт Numenta Platform for Intelligent Computing (NuPIC). Лицензия: AGPL 3 или платная лицензия для комерческого использования.
  19. JAVA-ML — Java Machine Learning Library (Java-ML). Лицензия: GNU 2
  20. JSAT — Набор алгоритмов машинного обучения для классификации, регрессионного анализа и кластеризации. Лицензия: GNU 3
  21. Meka — Открытая реализация методов multi-label классификации и оценки (расширение для Weka). Лицензия: GNU
  22. Neuroph — Neuroph это легковесный фреймворк по создания нейронной сети на Java. Лицензия: Apache 2.
  23. rapaio — Набор инструментов для статистического анализа, data mining и машинного обучения на Java. Лицензия: Apache 2.
  24. Apache SystemML — Гибкий, маштабируемый язык машииного обучения. (incubator project). Лицензия: Apache 2.
  25. wAlnut — Объектно ориентированная модель для частичного моделирования человеческого мыщления. Лицензия: GNU 3
Semantic Web и Linked Data

Semantic Web (он же Web of Data, Linked Data, Linking Open Data) — это направление развития Всемирной паутины, позволяющее машинам не только отображать информацию в интернете, но и понимать ее смысл.

  1. Apache Marmotta Открытая платформа для работы с Linked Data. Лицензия: Apache 2.
  2. Apache Jena Фреймворк для разработки Semantic Web и Linked Data приложений на Java. Лицензия: Apache 2.
Constraint Satisfaction Problem Solver

Библиотеки, которые помогают в такой задачи искусственного интеллекта (ИИ) как удовлетворения ограничений (УО) (constraint satisfaction problem).

  1. Choco — Полностью готовая "с полки" система по решению задачи удовлетворения ограничений (УО) (constraint satisfaction problem), используя constraint programming технологии, Лицензия: BSD.
  2. JaCoP — Включает в себя интерфейс для языка FlatZinc, что позволяет ему выполнять модели MiniZinc, Лицензия: неизвестна
  3. OptaPlanner — Решает задачи бизнес планирования и оптимизации ресурсов, Лицензия: Apache 2.
  4. Sat4J — Наиболее продвинутый SAT решатель для логических (? boolean) и оптимизационых проблем, Лицензия: GNU Lesser 3 и Eclipse Public 1.0.
Работа с естественными языками (NLP) и распознавние речи

К оглавлению

  1. Stanfordnlp CoreNLP Stanford CoreNLP: Java библиотека для работы с Stanford NLP (инструментами для анализа и работы с текстом на естественных языках, например английским). Лицензия: GNU 2, рейтинг github'а — 871.
  2. Apache OpenNLP — Набор инструментов для типовых задач таких как tokenization, Лицензия: Apache 2.
  3. LingPipe — Набор инструментов для различных видов задач от POS tagging до анализа предложений, Лицензия: AGPL и платная лицензия, проприетарная. ИЛИ
  4. Mallet — Статистическая обработка естественных языков, классификация документов, кластеризация, topic modeling и многое другое, Лицензия: Eclipse Public License v1.0.
  5. Twitter Text Libraries — Коллекция библиотек и тестов для парсинга текста твитов(tweet). Лицензия: Apache 2.
  6. NLP4J NLP4J проект (старое название ClearNLP) предоставляет набор NLP инструментов для JVM языков. Этот проект разрабатывается в NLP Research Group из Emory University. Лицензия: Apache 2.
  7. Joshua Joshua — система машинного перевода, написанная на Java. Разработана Human Language Technology Center of Excellence at Johns Hopkins University. Лицензия: BSD 2.
  8. Z-MERT Z-MERT — система машинного перевода. Лицензия: GNU Lesser General Public License (LGPL).
  9. ClearTK — ClearTK — фреймворк для разработки систем machine learning и natural language processing которые реализаует Apache Unstructured Information Management Architecture, github star: 34. Лицензия: Apache 2.
  10. Apache cTAKES — Apache cTAKES это NLP система для получения данных из медицинской документации. Лицензия: Apache 2.
  11. The Stanford Natural Language Processing Group — Набор различных NLP инструментов, написанных на Java. Подпроекты: Stanford Parser — A statistical parser, Stanford POS Tagger, Stanford Named Entity Recognizer, RegexNER,Word Segmenter,Classifier,EnglishTokenizer,TokensRegex,Temporal Tagger,Pattern-based Information Extraction and Diagnostics,Stanford Relation Extractor. Лицензия: GNU 2/3.
  12. Apache Tika The Apache Tika это набор инструмнтов для получение метаданных и структурированого теста из различных видом документов, используя разные парсеры (Apache cTAKES,OpenNLP и т.п.). Лицензия: Apache 2.
  13. CMU Sphinx — Библиотека для распознавания речи. Лицензия: BSD 3.

III. Работа с сетью и интеграция

1. Веб сервера и сервера приложений (web server & application server)

К оглавлению

  1. Wildfly — сервер приложений (Application Server), ранее известный как JBOSS, разработанный Red Hat с расширенной поддержки Java EE. Лицензия: GNU Lesser 2.1, рейтинг github'а — 1386.
  2. Undertow io Undertow — высокопроизводительный неблокирующий вебсервер. Лицензия: Apache 2, рейтинг github'а — 721.
  3. Apache Tomcat — зеркало Apache Tomcat — открытый web сервер с поддержкой сервлетов, jsp и некоторых аспектов J2EE. Проверенный и всесторонний сервер для сервлет и jsp. Лицензия: Apache 2, рейтинг github'а — 531.
  4. Nginx clojure — Nginx модуль с использованием Clojure или Java или Groovy программ. Лицензия: BSD 3, рейтинг github'а — 514.
  5. Eclipse Jetty.project — Http сервер и контейнер сервлетов. Легкий, маленький сервер, часто встраиваемый (embedded) в приложения. Лицензия: Eclipse Public 1.0 / Apache 2.0, рейтинг github'а — 512.
  6. Apache TomEE — Apache Tomcat сервер к которому добавили поддержку Java EE, Лицензия: Apache 2.
  7. WebSphere Liberty — Легковесный, модульный сервер, разработанный IBM, Лицензия: платная, проприетарная
  8. GlassFish — Сервер приложений и образцовая реализация Java EE от Oracle, Лицензия: GNU 2 или CDDL 1.0
  9. Apache Geronimo Java EE Application Server. Лицензия: Apache 2.
  10. Apache James Apache Java Enterprise Mail Server (или Apache James) это 100% чистый Java SMTP и POP3 постовый сервер и NNTP News сервер. Лицензия: Apache 2.

2. Сеть и сокеты

К оглавлению

  1. Netty низкоуровневый асинхроно-событийный фреймворк для быстрого создания высокопроизводительных клиент-серверных соединений. Более удобный аналог ассинхронным сокетам из модуля java.nio из JDK. . Лицензия: Apache 2, рейтинг github'а — 4847.
  2. Netty socketio Реализация Socket.IO сервера на Java. Основан на Netty фреймворке, служит для обеспечение работы с сетевыми соединениями и сокетами. Лицензия: Apache 2, рейтинг github'а — 754.
  3. Grpc java gRPC-Java это реализация RPC библиотеки и фреймворка на Java. Лицензия: BSD 3, рейтинг github'а — 753.
  4. Socket.io java client Реализация Socket.IO клиента на Java. Лицензия: MIT, рейтинг github'а — 688.
  5. Socket.io client.java Полнофункциональная Socket.IO клиентская библиотека для Java, совместимая с Socket.IO v1.0 и выше… Лицензия: MIT, рейтинг github'а — 603.
  6. EsotericSoftware Kryonet TCP/UDP клиентская и серверная библиотека для Java, основанная на Kryo. Лицензия: BSD 3, рейтинг github'а — 539.
  7. Async Http Client — Ассинхронная HTTP и вебсокет клиентская библиотека, Лицензия: Apache 2.
  8. Comsat — Интегрирует стандартный Java веб API c Quasar fibers и actors, Лицензия: Eclipse Public 1.0.
  9. Grizzly — NIO фреймворк. Использует как сетевой слой в Glassfish, Лицензия: GNU 2 и CDDL 1.1.
  10. OkHttp — HTTP+SPDY клиент, Лицензия: Apache 2.
  11. Undertow — Вебсервер, предоставляющий блокирующий и неблокирующий API, основанный на NIO. Используется как сетевой слой в WildFly, Лицензия: Apache 2.
  12. Apache MINA Apache MINA это фреймворк для создания быстрых сетевых приложений используя Java NIO. Лицензия: Apache 2.
  13. Apache HttpComponents проект для создания и поддержки низкоуровневых Java компонент работающих на HTTP, Java NIO и т.п. Лицензия: Apache 2.

3. Работа с сообщениями (message), очереди сообщений и прием и отправка сообщений

К оглавлению

  1. LMAX Exchange Disruptor Высокопроизводительная библиотека для поддержки межпоточных сообщений. Лицензия: Apache 2, рейтинг github'а — 3137.
  2. Gifsockets Коммуникационная библиотека, работающая в режиме реального времени и использующая Animated Gifs как транспорт. Лицензия: Eclipse Public 1.0, рейтинг github'а — 1414.
  3. Real logic Aeron Эффективная и надежная система отправки и получения одноадресных и многоадресных сообщения по сети (Publisher, Subscriber, Event, Monitoring и т.п.)… Лицензия: Apache 2, рейтинг github'а — 1103.
  4. JeroMQ ZeroMQ — система для работы с распределенными сообщениями, очередями, подписками и т.д… Лицензия: GNU 3, рейтинг github'а — 834.
  5. Metamorphosis Высокопроизводительная распределенная система обмена сообщениями. Лицензия: Apache 2, рейтинг github'а — 580.
  6. Igniterealtime Openfire Openfire это RTC (real time collaboration) сервер использующий широко распространенные протоколы обмена сообщениями, такие как XMPP (так же называемый Jabber). Лицензия: Apache 2, рейтинг github'а — 470.
  7. Zeromq Jzmq JZMQ это клиент для интеграции Java приложения с libzmq (например ZeroMQ, 0MQ). Лицензия: GNU 3, рейтинг github'а — 415.
  8. Aeron — Эффективный и надежный unicast и multicast транспорт сообщений, Лицензия: Apache 2.
  9. Apache ActiveMQ — Message broker that implements JMS and converts synchronous to asynchronous communication, Лицензия: Apache 2.
  10. Apache Camel — Glues together different transport APIs via Enterprise Integration Patterns, Лицензия: Apache 2.
  11. Apache Kafka — High-throughput distributed messaging system, Лицензия: Apache 2.
  12. Hermes — Fast and reliable message broker built on top of Kafka, Лицензия: Apache 2.
  13. JBoss HornetQ — Clear, concise, modular and made to be embedded, Лицензия: Apache 2.
  14. Smack Библиотека для создания XMPP клиента для JVMs и Android. Лицензия: Apache 2, рейтинг github'а — 426.
  15. Apache Qpid Реализиция AMQP спецификации. Лицензия: Apache 2.
  16. Apache Synapse Apache Synapse это легковестных ESB движок (сервисной шина предприятия) и XML router. Лицензия: Apache 2.
  17. Apache ServiceMix Apache ServiceMix это гибкий, открытый интеграционный контейнер для общего интерфейса к возможностям и функциональности Apache ActiveMQ, Camel, CXF и Karaf для создания полнофункционального ESB решения основнанного на OSGi. Лицензия: Apache 2.

4. Работа с http и ssh

К оглавлению

  1. Square Okhttp HTTP & SPDY (новый формат HTTP от гугла) клиент для Android и Java. . Лицензия: Apache 2, рейтинг github'а — 5022.
  2. AsyncHttpClient Асинхронная Http и WebSocket клиентская библиотека для Java. Лицензия: Apache 2, рейтинг github'а — 2149.
  3. Http request Java библиотека для отправки различных HTTP Request и получения response. Лицензия:  MIT., рейтинг github'а — 1477.
  4. Nanohttpd Крошечный и простой embeddable HTTP сервер для Java… Лицензия: BSD 3, рейтинг github'а — 1184.
  5. Http kit Http-kit это минималистский, событийный, высокопроизводительный Clojure HTTP сервер и клиентская библиотека с WebSocket и поддержкой асинхронности. Лицензия: Apache 2, рейтинг github'а — 1172.
  6. Apache Zookeeper Зеркало Apache Hadoop ZooKeeper — позволяет разрабатывать и поддерживать сервер, который позволяет очень надежную распределенную координации.. Лицензия: Apache 2, рейтинг github'а — 987.
  7. Moco Простой HTTP Stub сервер, для простого тестирования интеграции. Лицензия: MIT, рейтинг github'а — 857.
  8. Webbit Webbit — событийно-ориентированный вебсокет и HTTP сервер. Лицензия: BSD 3, рейтинг github'а — 648.
  9. Mashape Unirest java Unirest in Java: Упрощенная и легковесная HTTP клиент библиотека… Лицензия: MIT, рейтинг github'а — 537.
  10. Sshj Поддержка ssh, scp и sftp для java. Лицензия: Apache 2, рейтинг github'а — 500.
  11. Netflix Feign Feign позволяет создавать Java Http клиента проще и быстрее. Feign основан на Retrofit, JAXRS-2.0 и WebSocket. Лицензия: Apache 2, рейтинг github'а — 485.

5. Работа с rest

К оглавлению

  1. Square Retrofit Типобезопасная библиотека для создания REST клиента для Android и Java. . Лицензия: Apache 2, рейтинг github'а — 5945.
  2. Dropwizard фреймворк для создания RESTful сервисов c использованием Jetty, Jackson, Jersey и Metrics. Лицензия: Apache 2, рейтинг github'а — 3427.
  3. Swagger Примеры и сервер интеграция для генерации Swagger API спецификаий, которые позволяют создать легкий доступ к вашему REST API. http://swagger.io/ Лицензия: Apache 2, рейтинг github'а — 2657.
  4. Generator jhipster Хипстер стек для Java разработчиков: Yeoman + Maven + Spring + AngularJS в одном генераторе. Лицензия: Apache 2, рейтинг github'а — 2352.
  5. Jersey Зеркало Jersey 2.x. Jersey это REST фреймворк реализующий JAX-RS спецификацию. Лицензия: CDDL 1.0, рейтинг github'а — 864.
  6. Linkedin Rest.li Rest.li это REST+JSON фреймворк для создания надежных, маштабируемых сервисов с использованием простого асинхронного API и dynamic discovery спецификацию… Лицензия: Apache 2, рейтинг github'а — 825.
  7. Spring hateoas Spring HATEOAS — этот проект поддерживает APIs для легкого создания REST сервисов поддерживающих HATEOAS принципы для Spring и особенно Spring MVC… Лицензия: Apache 2, рейтинг github'а — 456.
  8. Feign — HTTP клиент основанный на Retrofit, JAXRS-2.0 и WebSocket, Лицензия: Apache 2.
  9. RESTEasy — Полностью сертифицированая и переносимая реализация JAX-RS спецификации, Лицензия: Apache 2.
  10. RestExpress — Тонкий wrapper для JBOSS Netty HTTP stack для обеспечения маштабируемости и производительности, Лицензия: Apache 2.
  11. RestX — Фреймворк, основанный на аннотациях и генерации кода во время компиляции, Лицензия: Apache 2.
  12. Spark — фреймворк, вдохновленный Sinatra фреймворком, Лицензия: Apache 2.
  13. Apache Wink RESTFul веб сервис, основанный на JAX-RS спецификации. Лицензия: Apache 2.
  14. Apache Olingo Apache Olingo это Java и JavaScript библиотека реализующая Open Data Protocol (OData). Open Data Protocol (OData) это открытый протокол создания RESTful APIs сервисов. Лицензия: Apache 2.

6. Интеграционные фреймворки

К оглавлению

  1. Jmxtrans Интеграция JVM с "внешним мира" (программами логирования, мониторинга, графики и т. п.). Лицензия: ?, рейтинг github'а — 708.
  2. Apache Camel Зеркало Apache Camel. Apache Camel — мощный свободный интеграционных фреймворк, основанный на Enterprise Integration Patterns… Лицензия: Apache 2, рейтинг github'а — 490.
  3. Apache CXF Apache CXF это открытый фреймворк, помогающий в разработке APIs, такого как JAX-WS или JAX-RS. Этот сервис позволяет использовать большое количество протоколов таких как SOAP, XML/HTTP, RESTful HTTP или CORBA и работать с большим количеством транспортов таких как HTTP, JMS или JBI. Лицензия: Apache 2.

7. Парсеры (Parser) и «веб-пауки»/краулеры (web-crawling)

К оглавлению

  1. Sparklemotion Nokogiri Nokogiri это HTML, XML, SAX, и Reader парсер с подержкой XPath и CSS selector. Лицензия: Apache 2, рейтинг github'а — 3323.
  2. Jsoup jsoup это Java HTML парсер с использованием DOM, CSS, и jquery. http://jsoup.org/ Лицензия: MIT, рейтинг github'а — 2006.
  3. Webmagic Фреймворк для создания интернет ботов для индексирования (crawler), которые реализует все этапы жизненного цикла crawler: скачивание, управление url, выделение контент и сохранение… Лицензия: Apache 2, рейтинг github'а — 1089.
  4. Antlr4 ANTLR (ANother Tool для Language Recognition мощный генератор парсеров для чтения, обработки, использование или конвертирования структурированного текста или бинарных файлов. Лицензия: BSD 3, рейтинг github'а — 836.
  5. Parboiled Элегантный, легкий, простой в использовании и мощный парсер, написанный на Java и Scala. Лицензия: Apache 2, рейтинг github'а — 775.
  6. Pegdown Обработчик языка разметки Markdown, основанный на PEG парсере, поддерживающим большое количество расширений. Лицензия: Apache 2, рейтинг github'а — 692.
  7. Apache Nutch — Хорошо расширяемый, хорошо маштабированный вебпаук с рабочей экосистемой, Лицензия: Apache 2.
  8. Crawler4j — Простой и легковесный вебпаук, Лицензия: Apache 2.

8. Работа с Json

К оглавлению

  1. Alibaba Fastjson Быстрый JSON обработчик. Лицензия: Apache 2, рейтинг github'а — 2605.
  2. JSON java Набор классов для работы с JSON в Java, конвертации JSON в XML, CDL, cookie lists, HTTP headers и обратно… Лицензия: Своя open-source лицензия ?, рейтинг github'а — 1561.
  3. Jsonschema2pojo Генерация Java классов из JSON схемы (или примера JSON) с аннотациями для data-binding для Jackson 1.x or 2.x, Gson и т. п… Лицензия: Apache 2, рейтинг github'а — 914.
  4. Square Moshi JSON библиотека для Android и Java, служит для упрощения парсинга Json в объекты Java. Лицензия: Apache 2, рейтинг github'а — 765.
  5. Instagram Ig json parser Быстрый JSON парсер для java проектов. Лицензия: BSD 3, рейтинг github'а — 730.
  6. FasterXML Jackson core Основная часть Jackson библиотеки для реализации работы с низкоуровневым ("streaming") JSON парсера и генераторов JSON файлов. Лицензия: Apache 2, рейтинг github'а — 682.
  7. FasterXML Jackson databind Основной data-binding пакет для Jackson (2.x) основанный на потоковом API Jackson Сore. Лицензия: Apache 2, рейтинг github'а — 640.
  8. Jayway JsonPath Java JsonPath — реализация аналога XPATH только для Json, а не XML. Лицензия: Apache 2, рейтинг github'а — 448.
  9. Json schema validator Валидация JSON Schema, реализована на чистой Java, создана с целью проверки Json файлов, используя Json схемы. Лицензия: GNU Lesser 3/Apache 2, рейтинг github'а — 411.
  10. Genson -Мощная и простая в использовании Java библиотека для преобразования в/из JSON, Лицензия: Apache 2.
  11. Gson — Простая сериализации объектов в JSON и обратно. Хорошая производительность и легкость в использовании, Лицензия: Apache 2.
  12. Jackson — Похоже на GSON, но более производительна, если вам нужно часто создавать экземпляр библиотеки, Лицензия: Apache 2.
  13. LoganSquare — Библиотека парсинга и сериализации JSON, основанная на Jackson's streaming API. Превосходит по некоторым возможностям GSON и Jackson библиотеки, Лицензия: Apache 2.

9. CSV

Frameworks and libraries that simplify reading/writing CSV data.К оглавлению

  1. opencsv — Простой CSV парсер, Лицензия: Apache 2.
  2. Super CSV — Мощный CSV парсер, поддерживающий Dozer, Joda-Time и Java 8, Лицензия: Apache 2.
  3. uniVocity-parsers — Один из самых быстрых и многофункционных CSV парсеров. Так же в библиотеке есть парсеры для TSV и файлом с записями фиксированной ширины, Лицензия: Apache 2.

10. Интеграция с Api разных систем (соц. сетей и т. п.)

К оглавлению

  1. Twitter Zipkin Zipkin это распределенная системы отслеживания, которая используется Twitter для сборк информации о работе всех его различных сервисов. Лицензия: Apache 2, рейтинг github'а — 2442.
  2. Wizcorp Phonegap facebook plugin Официальный плагин для Facebook в Apache Cordova/PhoneGap. Лицензия: Apache 2, рейтинг github'а — 1587.
  3. Twitter4j Twitter4J это библиотека для работы с Twitter API в Java (поддерживает работу с JSON, REST Search API, Apache HttpClient, Async API, Streaming API, Async API, Streaming API, HTTP/2). Лицензия: Apache 2, рейтинг github'а — 1551.
  4. Netflix Ice AWS Usage Tool — система работы с Amazon Web Services. Лицензия: Apache 2, рейтинг github'а — 1358.
  5. Twitter Commons Библиотека для работы с Twitter для python и JVM. Лицензия: Apache 2, рейтинг github'а — 964.
  6. Alibaba RocketMQ RocketMQ — это реализация системы обмена сообщениями MQ (Message queue) для взаимодействия с различными сервисами портала Alibaba. Лицензия: Apache 2, рейтинг github'а — 627.
  7. Twitter Hbc Java HTTP клиент для работы Twitter's Streaming API. Лицензия: Apache 2, рейтинг github'а — 498.
  8. Spring projects Spring social Spring Social это расширение Spring Framework, которые позволяет интегрировать ваши приложения с Software-as-a-Service (SaaS) провайдерами, такими как Facebook или Twitter. Лицензия: Apache 2, рейтинг github'а — 409.

11. Работа с биткойном

К оглавлению

  1. XChange XChange это Java библиотека предоставляющая удобный API для взаимодействия с более чем 50+ Bitcoin и Altcoin обменными биржами. Лицензия: MIT, рейтинг github'а — 455.
  2. bitcoinj Библиотека для работы с Bitcoin. Лицензия: Apache 2, рейтинг github'а — 453.
  3. DiabloMiner OpenCL майнер для Bitcoin. Лицензия: GNU 3, рейтинг github'а — 443.

12. Облачные системы

К оглавлению

  1. Netflix SimianArmy — инструменты для поддержки ваших облачных операций. Chaos Monkey это гибкий инструментарий для создания устойчивых к случайным ошибкам приложений… Лицензия: Apache 2, рейтинг github'а — 2892.
  2. Netflix Eureka это REST (Representational State Transfer) — сервис для управления AWS (Amazon Web Services ) облаками, обеспечение load balancing и отказоустойчивости. Лицензия: Apache 2, рейтинг github'а — 1051.
  3. Aws sdk java Официальное зеркало Java AWS SDK (Amazon Web Services). Лицензия: Apache 2, рейтинг github'а — 1008.
  4. Syncany это облачное хранилище и файл обменное приложение, которое фокусируется на безопансоти и абстрагирования от системы хранения. Лицензия: GNU 3, рейтинг github'а — 772.
  5. Legacy Jclouds это открытая библиотека, которая поможет начать работать с облаками используя ваши навыки разработки на Java. Поддерживает многие виды облаков включая Amazon, VMWare, Azure, и Rackspace… Лицензия: Apache 2, рейтинг github'а — 507.
  6. Elasticsearch — одна из самых популярных систем распределенного облачного поиска.. Лицензия: Apache 2, рейтинг github'а — 11833.
  7. Elasticsearch cloud aws Плагин для работы ElasticSearch с Amazon Web Service (AWS) облаками. Лицензия: Apache 2, рейтинг github'а — 435.
  8. Elasticsearch analysis ik The IK Analysis плагин интеграции с Lucene IK анализаторов для elastic search, поддерживающий пользовательские словари. Лицензия: ?, рейтинг github'а — 395.
  9. Apache CloudStack Apache CloudStack это IaaS (“Infrastracture as a Service”) облачная платформа. Лицензия: Apache 2.
  10. Apache Stratos Apache Stratos это Platform-as-a-Service (PaaS) облачная платформа. Лицензия: Apache 2.
  11. Apache Airavata Apache Airavata это фреймворк выполнения и управления заданиями в распределенных ресурсах, таких как кластеры, суперкомпьютеры, national grids, академические и комерческие облака. Лицензия: Apache 2.

13. Cluster Management

Фреймворки для динамического управления приложением внутри класстера.К оглавлению

  1. Apache Aurora — Apache Aurora это Apache Mesos фреймворк для длительных сервисов и cron jobs, Лицензия: Apache 2.
  2. Singularity — Singularity это Apache Mesos фреймворк, который делает разработку и обслуживание проще. Он поддерживает вебсервисы, фоновое выполнение, запуск задач по расписанию и выполнение одноразовых задач, Лицензия: неизвесна, на сайте не найдена!.
  3. Apache Helix Это фреймворк управления кластером. Лицензия: Apache 2.
  4. Apache Airavata Apache Airavata это фреймворк выполнения и управления заданиями в распределенных ресурсах, таких как кластеры, суперкомпьютеры, national grids, академические и комерческие облака. Лицензия: Apache 2.

14. Работа с документами (XLS, DOC, PDF и т.п.)](#14-document-processing-xls-doc-and-pdf)

Libraries that assist with processing office document formats.

  1. Apache POI — Поддерживает OOXML (XLSX, DOCX, PPTX) так же как и OLE2 (XLS, DOC or PPT), Лицензия: Apache 2.
  2. documents4j — API для конверторов в разные форматы документов, используя third-party конверторы такие как MS Word, Лицензия: Apache 2.
  3. Docx4j Docx4j библиотека для работы с Microsoft OpenXML файлами (Word docx, Powerpoint pptx, и Excel xlsx) через JAXB. Лицензия: Apache 2.
  4. jOpenDocument — Работа с OpenDocument формата, Лицензия: GNU или платная лицензия для коммерческого использования. ИЛИ
  5. Apache Tika The Apache Tika это набор инструмнтов для получение метаданных и структурированого теста из различных видом документов, используя разные парсеры (Apache cTAKES,OpenNLP и т.п.). Лицензия: Apache 2.
PDF

Everything that helps with the creation of PDF files.К оглавлению

  1. Apache FOP — Создание PDF из XSL-FO, Лицензия: Apache 2.
  2. Apache PDFBox — Набор инструментов для создания и изменения PDF, Лицензия: Apache 2.
  3. DynamicReports — Улучшение JasperReports, Лицензия: GNU Lesser 3.
  4. flyingsaucer — lying Saucer это Java библиотека для использования XML или XHTML с использованием CSS 2.1 для генерации PDF, изображений или Swing panels. Лицензия: GNU Lesser 2.1.
  5. iText — Создание PDF файлов из программы, но требует лицензию для комерчиского использования, Лицензия: AGPL или платная лицензия для комерческого использования. ИЛИ
  6. JasperReports — Комплексный движок отчетов, Лицензия: GNU Lesser.

15. Работа с нативным API разных ОС](#15-native)

For working with platform-specific native libraries.К оглавлению

  1. Java Native Access (JNA) Java Native Access — система доступа к нативному API. Так же предоставляет интерфейсы к основным системых библиотекам. Лицензия: GNU Lesser 2.1 или Apache 2. , рейтинг github'а — 1750.
  2. JNR — Работа с нативными библиотеками без использвания JNI. Так же предоставляет интерфейсы к основным системых библиотекамs. Те же задачи что у JNA, но работает быстрее, и служит основой для разрабатываемого Project Panama, Лицензия: Apache 2.

16. XML и SOAP

  1. Xalan Xalan-J это XSLT processor, написанный на Java. Лицензия: Apache 2.
  2. Xerces Xerces-J это validating XML парсер, написанный на Java. Лицензия: Apache 2.
  3. XML Graphics Конвертация XML в графическое представление. Лицензия: Apache 2.
  4. Santuario Библиотека реализующая XML Digital Signature спецификацию и XML Encryption спецификацию. Лицензия: Apache 2.
  5. VXQuery Apache VXQuery реализует параллельный XML Query processor. Лицензия: Apache 2.
  6. Apache Axis Веб контейнер который помогает создавать, развертывать и запускать вебсервисы. Axis2 это Web Services / SOAP / WSDL движок. Лицензия: Apache 2.

17. Интеграция с сервисами геопозиционирования

Библиотеки для работы с сервисами геопозиционирования.

  1. Apache SIS — Библиотека для разработки приложений геопозиционирования. Лицензия: Apache 2.
  2. Geo — GeoHash утилиты для Java. Лицензия: Apache 2.
  3. Geotoolkit.org — Библиотека для разработки приложений геопозиционирования. Работает на основе Apache SIS проекта. Лицензия: GNU Lesser 2.1.
  4. GeoTools — Библиотека предоставляющая инструменты для получения данных геопозиционирования. Лицензия: GNU Lesser 2.1.
  5. h3GIS — Геопозиционированое расширение для базы данных h3. Лицензия: GPL 3.
  6. Jgeohash — Библиотека, помогающая Java разработчикам в использовании GeoHash алгоритмов. Лицензия: Apache 2.
  7. JTS Topology Suite — API для 2D геопозиционирования. Лицензия: GNU Lesser 3.
  8. Mapsforge — Продукт для геопозиционирования на карте, основанной на OpenStreetMap данных. Лицензия: GNU Lesser 3.
  9. Spatial4j — Универсальная библиотека геопозиционирования. Лицензия: Apache 2.

IV. Тестирование

1. Тестирование

К оглавлению

  1. Junit Простой и популярный фреймворк для unit тестирования. Лицензия:  Eclipse Public 1.0, рейтинг github'а — 3662.
  2. Mockito Mocking фреймворк для unit тестов, написанных на Java. Лицензия: MIT, рейтинг github'а — 1307.
  3. Selenium Фреймворк для автоматического тестирования в браузере. Лицензия: Apache 2, рейтинг github'а — 1305.
  4. Cucumber jvm Портирование Cucumber фреймворка для JVM. Лицензия: MIT, рейтинг github'а — 1047.
  5. Spock Spock это фреймворк тестирования и создания спецификаций для Java и Groovy приложений. Лицензия: Apache 2, рейтинг github'а — 669.
  6. Google Firing range Google Firing Range это тестовый вебсервер для приложений-сканеров уязвимостей вебсайтов. Firing Range создает широкий спектр синтетических уязвимостей. Лицензия: Apache 2, рейтинг github'а — 650.
  7. Fitnesse FitNesse это система тестирования, вебсервер и вики. Лицензия: CPL-1.0, рейтинг github'а — 618.
  8. Sikuli Sikuli служит для написания скриптов, служащих для автоматизации работы со всем что вы ведите на экране… Лицензия: MIT, рейтинг github'а — 609.
  9. JavaHamcrest Hamcrest это фреймворк для создания условий и правил в программных тестах, написанных на Java, он позволяет создать сложные выражения для этих условий (assertion matcher), которые потом могут использовать в системах unit тестирования, таких как JUnit или jMock.. Лицензия: BSD 3, рейтинг github'а — 561.
  10. Wiremock Инструментарий для создания mock'ов (заглушек для тестирования) HTTP сервисов. Лицензия: Apache 2, рейтинг github'а — 508.
  11. Testng TestNG фреймворк для тестирования. Лицензия: Apache 2, рейтинг github'а — 477.
  12. Galenframework Galen Galen Framework это мощный фреймворк для автоматического тестирования дизайна и функционала вебсайтов. Использует Selenium для работы с браузером и автоматического тестирования вебсайтов. Лицензия: Apache 2, рейтинг github'а — 449.
  13. AssertJ AssertJ это библиотека предоставляющая мощный механизм работы с условиями (assertion) для тестовых фреймворков. Лицензия: Apache 2, рейтинг github'а — 423.
  14. Google truth Фреймворк для задания ограничений и утверждений (Assertion/Proposition) в Unit тестах (версия ещё очень альфа, может быть полностью изменена ). Лицензия: Apache 2, рейтинг github'а — 394.
  15. Apache JMeter — Функциональное тестирование и замеры производительности. Лицензия: Apache 2.
  16. Arquillian — Интеграционная и функциональная платформа тестирования Java EE контейнеров, Лицензия: Apache 2.
  17. Awaitility — DSL для синхронизации ассинхроных операций, Лицензия: Apache 2.
  18. Citrus — Фреймворк интеграционного тестирования, которой фокусируется на тестировании клиент-серверного обмена сообщениями, Лицензия: Apache 2.
  19. Cucumber — BDD фреймворк тестирования, Лицензия: MIT.
  20. Gatling — Содержит инструменты тестирования разработанные для легкого использования, легкого сопровождения и высокой производительности, Лицензия: MIT.
  21. GreenMail — In-memory email сервер для интеграционного тестирования, поддерживает SMTP, POP3 и IMAP включая SSL, Лицензия: MIT.
  22. JGiven — Удобный для разработчиков BDD фреймворк тестирования совместимый с JUnit и TestNG, Лицензия: MIT.
  23. JMockit — Создает мock'и статических и финальных методов, а так же многое другое, Лицензия: MIT.
  24. JUnitParams — Облегчает создание читабельных и легких в поддержке параметризованных тестов, Лицензия: Apache 2.
  25. Moco — Создание лаконичных вебсервисов для тестирования (stubs и mocks), награжден Duke's Choice Award 2013, Лицензия: MIT.
  26. PIT — Быстрый мутационный фреймворк тестирования с возможностью обнаружения ошибок в написании существующих JUnit или TestNG тестах, Лицензия: Creative Commons License.
  27. PowerMock — Позволяет создание mock'ов статических методов, финальных классов и методов, приватных классов и удаление статических инициализаторов, Лицензия: Apache 2.
  28. REST Assured — Java DSL для легкого тестирования REST/HTTP сервисов, Лицензия: Apache 2.
  29. Selenide — Краткое API над Selenium, позволяющее писать стабильные и читабельные UI тесты, Лицензия: MIT.
  30. Unitils — Модульная библиотека тестирования для unit и интеграционного тестирования, Лицензия: Apache 2.

2. Code Coverage

Фреймворки и инструменты для получения набора code coverage метрик для тестов.К оглавлению

  1. JaCoCo — Фреймворк, который позволяет собирать метрики покрытия кода тестами, используя как offline, так и runtime байткод инструменты, используется в EclEmma, плагине Eclipse для определения степени покрытия тестами, Лицензия: Eclipse Public License v1.0, Apache 2, BSD.
  2. Clover — Проприетарный инструмент для определения степени покрытия кода тестами от Atlassian, который основан на анализе исходного кода вместо анализа байткода, Лицензия: платная, проприетарная
  3. Cobertura — Использует автономный (или статическый) инструментарий анализа байткода и class loading'a для получения метрик покрытия кода тестами, Лицензия: GNU 2.
  4. JCov — Набор инструментов для анализа покрытия кода тестами, который используется при разработке OpenJDK проекта, Лицензия: GNU 2.

3. Continuous Integration

Набор инструментов, поддерживающих непрерывную сборку, тестирование и релизы приложений.К оглавлению

  1. Bamboo — Atlassian's решение с хорошей интеграцией с другими продуктами этой компании. Можно использовать либо подав заявку на бесплатную лицензию или просто купив его,
  2. CircleCI — Cервис хостинга CI с бесплатным тестовым сроком,
  3. Codeship — Cервис хостинга CI с ограниченными бесплатными планами.
  4. fabric8 — Интеграционная платформа для контайнеров, Лицензия: Apache 2.
  5. Go — Открытое решение от ThoughtWork. Есть платная поддержка, Лицензия: Apache 2.
  6. Jenkins — Предоставляет серверное решение для развертывания сервисов, Лицензия: MIT.
  7. TeamCity — JetBrain's CI решение с бесплатной версией для open-source продуктов, Лицензия: Проприетарная, платная
  8. Travis — Cервис хостинга CI, который часто использует в открытых продуктах, Лицензия: ?
  9. Hudson — Сервер непрерывной реализации для активной разработки, Лицензия: Eclipse Public License v1.0.
  10. Apache Continuum Сервер непрерывной реализации от Apache. Лицензия: Apache 2.

4. Formal Verification

  • Инструменты для формальной верефикации: proof assistants, model checking, symbolic execution и т.п.*К оглавлению
  1. CATG — Concolic unit тест движок. Автоматически генерит unit тесты, используя ряд формальных методов, Лицензия: BSD 2, Лицензия: BSD 2.
  2. Checker Framework — Легко настраиваемая плагинами система типов, включет nullness типы, physical units, неизменяемые типы и прочее, Лицензия: GNU 2.
  3. Daikon — Daikon обнаруживает различные программные invariants и мрдет генерировать JML спецификации, основанные на этих invariats, Лицензия: GNU.
  4. Java Modeling Language (JML) — Интерфейс поведенческих спецификаций, который может исопльзоваться для определения желаемого поведения программных модулей. Он комбинирует подход контрактного дизайна приложения от Eiffel и подход спецификаций модели, основанных на семействе Larch языков описания спецификаций интерфейсов, с некоторыми элементами от refinement calculus. Используется в некоторых других системах верефикации, Лицензия: GNU 2.
  5. Java Path Finder (JPF) — JVM инструмент formal верефикации, который содержит проверки модели и прочее. Созданн НАСА., Лицензия: NASA OPEN SOURCE AGREEMENT VERSION 1.3
  6. jCUTE — Concolic unit тест движок. Автоматически генерит unit тесты. Concolic выполнение комбинирует случайное concrete execution с symbolic execution и automatic constraint solving, Лицензия: Проприетарная, бесплатная для целей обучения и т.п.
  7. JMLOK 2.0 — Обнаруживает несоответствий между кодом и спецификацией JML с помощью генерации случайных тестов с обратной связью и предлагает возможные причины, вызывающие обнаруженные несоотвествия, Лицензия: GNU 3.
  8. KeY — KeY System это инструмент формальной верефикации основными целями которого являются интеграция дизайна, имплементации, формальной спецификации и формальная верефикация ООП настолько легко, насколько это возможно. Использует JML для спецификаций и symbolic execution для верефикации, Лицензия: GNU.
  9. OpenJML — Преобразует JML спецификации в SMT-LIB формат и находит проблемы и передает описание проблем к backend решателю, Лицензия: GNU 2 и Eclipse Public License v1.0.

V. Инструменты для упрощения разработки

1. IDE

К оглавлению

  1. JetBrains Intellij Сommunity IntelliJ IDEA Community Edition — одна из лучший IDE для Java. http://www.jetbrains.com/idea/ Лицензия: Apache 2, рейтинг github'а — 2068.
  2. JetBrains Ideavim Плагин, эмулирующий Vim для IDE, основанных на IntelliJ платформе. Лицензия: GNU 2, рейтинг github'а — 1199.
  3. Rstudio RStudio это IDE для языка R. Лицензия: GNU AGPLv3, рейтинг github'а — 1048.
  4. Vrapper Плагин по добавлению Vim-подобного редактора в Eclipse. Лицензия: GNU 3.0, рейтинг github'а — 669.
  5. Eclipse themes Jeeeyul's Eclipse Themes (прошлое имя Eclipse Chrome Theme) это возможность настроить каждую деталь Eclipse'а. Лицензия: Eclipse Public 1.0, рейтинг github'а — 623.
  6. Eclipse color theme Eclipse Color Theme позволяет легко импортировать и удобно менять цветовые темы без побочных эфектов. Лицензия: Eclipse Public 1.0, рейтинг github'а — 614.
  7. Eclim Добавление в редактор Vim возможностей Eclipse IDE. Лицензия: GNU 3, рейтинг github'а — 590.
  8. JetBrains MPS JetBrains MPS (Meta programming System) служит для быстрой разработки DSL (Domain Specific Language) для любого окружения и с возможностью скомпилировать DSL в множество языков, таких как Java, C, XML и другие. Лицензия: Apache 2, рейтинг github'а — 525.
  9. Idea markdown Поддержка языка разметки Markdown в IntelliJ IDEA… Лицензия: Apache 2, рейтинг github'а — 405.
  10. Eclipse — Популярная открытая IDE поддерживающая большое количество плагинов и языков программирования, Лицензия: Eclipse Public License v1.0.
  11. NetBeans — IDE поддерживает большое количество различных возможностей для разработки Java SE и EE приложений от работы с базой данных до работы с HTML5, Лицензия: GNU 2 или CDDL 1.0

2. Инструменты и библиотеки для сборки, конфигурирования и развертывания Java приложений

К оглавлению

Build

Инструменты для сборки проекта (build) и работы с зависимостями(dependencies) приложения.

  1. Apache Maven — Система декларативной сборки и управления зависимостями, которая упрощает конфигурирование приложения. Это может быть предпочтительнее Apache Ant, используещего более процедурный подход, который сложнее поддерживать в большинстве случаев. Лицензия: Apache 2, рейтинг github'а — 614.
  2. Google Bazel — Инструмент для сборки от Google, который позволяет собирать код быстро и надежно. Корректная, воспроизводимая и быстрая билд система для любых ситуаций Лицензия: Apache 2, рейтинг github'а — 2809.
  3. Gradle — Система инкрементальной сборки, использующая для конфигурирования Groovy вместо XML. Хорошо совместима с Maven конфигурациями. Лицензия: Apache 2, рейтинг github'а — 2465.
  4. Apache Ant — Инструмент для сборки проиложений, использующий XML для конфигурационных файлов, раньше был очень популярен, сейчас используется довольно редко. Подпроекты: Apache AntUnit — система тестирования файлов ant'a, Apache Compress Ant Library — дополнительные форматы архивов и сжатия, Apache Ivy — работа с зависимостями, Apache IvyDE — плагин Ivy для Eclipse. Лицензия: Apache 2.
  5. Facebook Buck — система сборки, упрощающая создание небольших, повторно используемых модулей. Лицензия: Apache 2, рейтинг github'а — 1449.
  6. Archiva Apache The Build Artifact Repository Manager. Apache Archiva — расширяемый репозиторий артефактов сборки, идеально совместим с такими средствами сборки как Maven, Continuum и ANT. Лицензия: Apache 2.
Configuration

Библиотеки, управлящие конфигурированиемК оглавлению

  1. config — Конфигурационная библиотека для JVM языков. Лицензия: Apache 2, рейтинг github'а — 614.
  2. owner — Уменьшение бесмысленного типового кода для работы с properties, Лицензия: BSD 3.
  3. Netflix Archaius — библиотека, реализующая API для управления конфигурациями, используется Netflix. Лицензия: Apache 2, рейтинг github'а — 614.
  4. LightAdmin — Легко настраиваемя CRUD UI библиотека для быстрой разработки приложений, Лицензия: Apache 2.
  5. Apache Yetus Коллекция библиотек и инструменов для управления contribution и release процессами. Лицензия: Apache 2.
Distribution

Инструменты для работы с развертыванием (distribution) приложений в нативные форматы.К оглавлению

  1. Bintray — Контроль версий для бинарных файлов, так же может использовать вместе с Maven или Gradle и имеет свободный план для открытого ПО, а так же ряд различных бизнес планов, Лицензия: проприетарная платная, есть бесплатная версия для открытых продуктов
  2. Capsule — это система сборки приложения в один выполняемый JAR файл со всеми артефактами, ресурсами, нативными библиотеками и т.п. Простой и мощный инструмент для packaging и deployment. Толстый JAR на стероидах или "Docker для Java", который поддерживает JVM-оптимизированные контейнеры, рейтинг github'а — 576. Лицензия: Eclipse Public License v1.0.
  3. Central Repository — Огромный бинарный репозеторий компонентов, который доступен как свободный сервис для проектов с открытым ПО. Используется Apache Maven и доступно для всех остальных инструментов сборки, Лицензия: проприетарная
  4. IzPack — Широко используемый набор инструментов для многоплатформенного развертывания приложений (deployments). Лицензия: Apache 2, рейтинг github'а — 614.
  5. JitPack — Простой в использовании репозиторий пакетов для GitHub. Собирает Maven / Gradle проекты и публикует их в готовых к использованию пакетах. Лицензия: Apache 2, рейтинг github'а — 614.
  6. Launch5j — Преобразует JARs файлы в легковесные и нативные исполнянмые файлы Windows , Лицензия: BSD 3 и MIT.
  7. Nexus — Усправления бинарными файлами с прокси и кэшированием, Лицензия: проприетарная платная
  8. packr — Преобразование JARs, assets и JVM в нативные приложения Windows, Linux и Mac OS X, Лицензия: Apache 2.
  9. Spotify Helios это Docker orchestration платформа для развертывания и управления контейнерами с помощью HTTP API или командной строки. Лицензия: Apache 2, рейтинг github'а — 952.

3. Инструменты для оптимизации производительности

Библиотеки для оптимизации и решения проблем с производительностьюК оглавлению

  1. Square Leakcanary утилита для поиска ошибок из-за которых происходит memory leak для Android и Java. Лицензия: Apache 2, рейтинг github'а — 4168.
  2. Dropwizard Metrics — библиотека для замера различных метрик в Java приложении для простого понимания что и как код делает во время продакшена. . Лицензия: Apache 2, рейтинг github'а — 3188.
  3. GCViewer Форк Tagtraum GCViewer — небольшой инструмент для подробной визуализации GC (garbage collector) логов (включая G1 collector). Лицензия: GNU Lesser 2.1, рейтинг github'а — 990.
  4. AdoptOpenJDK Jitwatch Анализатор логов Java HotSpot JIT компилятора, показывающий результаты используя JavaFX интерфейс. Лицензия: BSD 2, рейтинг github'а — 547.
  5. Naver Pinpoint это APM (Application Performance Management) инструмент мониторинга производительности крупномасштабных распределенных систем, написанных на Java. Создан на основе Google's Dapper paper… Лицензия: Apache 2, рейтинг github'а — 486.
  6. jHiccup — Логирование и запись проблем с производительностью и потерь скорости у JVM, Лицензия: BSD 2.
  7. JMH — Microbenchmarking инструмент для JVM, Лицензия: GNU 2.
  8. LatencyUtils — Утилиты для измерения времени отклика приложения и составления отчетов, Лицензия: BSD 2.
  9. VisualVM — Визуальный интерфейс, показывающий детальную информацию о запущенных приложениях.Лицензия: GNU 2 with the Classpath Exception.
  10. JProfiler — Платный профайлер. Лицензия: Проприетарная платная, есть бесплатная версия для open source проектов
  11. YourKit Java Profiler — Платный профайлер. Лицензия: Проприетарная платная, есть бесплатная версия для open source проектов, спец.планы для научных и академических целей
  12. XRebel — Платный профайлер. Лицензия: Проприетарная платная

4. Анализ исходного кода

К оглавлению

  1. SonarQube это свободная платформа для управлением качеством кода. http://www.sonarqube.org Лицензия: GNU Lesser 3, рейтинг github'а — 655.
  2. Google Error prone — обнаружение типовых ошибок в Java коде. Лицензия: Apache 2, рейтинг github'а — 590.
  3. OpenGrok Это быстрый и полезные поиск в исходном коде проекта, поиск кросс-ссылок в классах и навигации по дереву исходного кода, он поддерживает разные системы управления кодов, такие как SCCS, RCS, CVS, Subversion, Mercurial и т.п.c… Лицензия: CDDL 1.0, рейтинг github'а — 570.
  4. Checkstyle — Статический анализ на соблюдения стандартов и конвенций по написанию кода, Лицензия: GNU Lesser 2.1.
  5. FindBugs — Статический анализ байткода для поиска потенциальных ошибок. Лицензия: GNU Lesser.
  6. jQAssistant — Статический анализатор кода с основанном на Neo4J языке запросов, Лицензия: GNU 3.
  7. PMD — Анализ исходного кода для поиска плохих практик программирования, Лицензия: BSD 4.

5. Monitoring

Инструменты для мониторинга приложений в production.К оглавлению

  1. AppDynamics — Коммерческий монитор производительности. Лицензия: Проприетарная платная, есть бесплатная версия с ограниченной функциональностью
  2. JavaMelody — Мониторинг производительности и профайлинг, Лицензия: Apache 2.
  3. jmxtrans — Инструмент для соединения с различными JVMs и запросах их свойств через JMX. Этот язык запросов основан на JSON, что позволяет не-Java программистам получать доступ к JVMs свойствам. Также, этот инструмент поддерживает различные виды вывода данных, включая Graphite, Ganglia, StatsD и многие другие, Лицензия: MIT.
  4. Kamon — Инструменты для мониторинга приложений запущенных на JVM, Лицензия: Apache 2.
  5. New Relic — Коммерческий монитор производительности. Лицензия: Проприетарная платная, с двумя неделями пробного периода
  6. SPM — Коммерческий монитор производительности с отладкой распределенных транзакций в JVM приложениях. Лицензия: Проприетарная платная, есть бесплатная версия с ограниченной функциональностью
  7. Takipi — Коммерческий мониторинг ошибок и отладка в продашен режиме. Лицензия: Проприетарная платная, есть бесплатная версия с ограниченной функциональностью и пробный период в две недели у полной версии
6. Переопределение загруженных классов

К оглавлению

  1. Dynamic Code Evolution Virtual Machine (DCE VM) — Модификация JVM, которая позволяет неограниченное переопределение загруженных классов во время выполнения. Лицензия: GNU 2
  2. DCEVM — Форк DCEVM. Модификация JVM, которая позволяет неограниченное переопределение загруженных классов во время выполнения, Лицензия: GNU 2
  3. HotswapAgent — Неограниченное переопределение классов и ресурсов во время выполнения, Лицензия: GNU 2
  4. JRebel — Коммерческое программное обеспечение, которое позволяет неограниченно перезагружает код и изменять конфигурацию без перезагрузки сервера, Лицензия: Проприетарная, платное ПО,
  5. Spring Loaded — Агент для повторой перезагруки классов, Лицензия: Apache 2

7. Прочее

К оглавлению

  1. Google J2ObjC: Java to Objective-C Translator and Runtime — конвертация языка Java (включая Android) в Objective-C… Лицензия: Apache 2, рейтинг github'а — 2940.
  2. Bytecode viewer Система для реверс-инженеринга Java и Android (декомпилятор, редактор, отладчик и т. д.). Лицензия: GNU 3, рейтинг github'а — 617.
  3. Reflections сканирует ваш classpath, индексирует метаданные и позволяет строить запросы во время выполнения к метаданным, может сохранять информацию о метаданных вашего проекта. Лицензия: WTFPL, рейтинг github'а — 514.

Current implementations of the JVM/JDK.

  1. JDK 9 — Ранний доступ к версии JDK 9., Лицензия: GNU 2.
  2. OpenJDK — Oткрытая реализация Java для Linux., Лицензия: GNU 2.
  3. Zulu OpenJDK — OpenJDK реализация для Windows, Linux и Mac OS X включая Java 8, Лицензия: GNU 2.
  4. Zulu OpenJDK 9 — Ранний доступ к версии OpenJDK 9 для Windows, Linux и Mac OS X, Лицензия: GNU 2.

VI. Языки программирования и приложения, написанные на Java

1. Языки программирования, написанные на Java

К оглавлению

  1. Clojure Язык программирования Clojure. . Лицензия: Apache 2, рейтинг github'а — 4332.
  2. JetBrains Kotlin Язык программирования Kotlin. Лицензия: Apache 2, рейтинг github'а — 1621.
  3. Gocd Основной репозиторий для сборки Go программ. Лицензия: Apache 2, рейтинг github'а — 1602.
  4. Groovy core Язык программирования Groovy. Лицензия: Apache 2, рейтинг github'а — 1327.
  5. Jphp compiler Jphp Альтернативный вариант Zend PHP для JVM, такой же как JRuby и Jython но только для PHP. Лицензия: Apache 2, рейтинг github'а — 969.
  6. Trifork Erjang Виртуальная JVM машина для языка Erlang. Лицензия: Apache 2, рейтинг github'а — 484.

2. Утилиты для других языков программирования, написанные на Java

К оглавлению

  1. Go lang idea plugin IDE для языка программирования Goole Go, созданная на основе IntelliJ Platform. Лицензия: Apache 2, рейтинг github'а — 1717.
  2. Processing js Портирование Processing библиотеку для работы с видео и изображениями в JavaScript… Лицензия: MIT, рейтинг github'а — 1696.
  3. Pysonar2 PySonar2 это система индексирования и получения типов в Python, которая проводить сложный анализ с помощью Sourcegraph сотен тысяч открытых Python репозиториев. Лицензия: GNU GNU AGPLv3, рейтинг github'а — 1654.

3. Javascript

К оглавлению

  1. Yuicompressor YUI Compressor — это система сжатия JavaScript и CSS файлов, которая удаляет лишние пробелы, безопасно обфуцирует локальные переменные до минимального возможного имени и т. д… Лицензия: BSD, рейтинг github'а — 1840.
  2. Google Closure compiler Библиотека проверки JavaScript кода и его оптимизации. Лицензия: Apache 2, рейтинг github'а — 1442.
  3. Frontend maven plugin Maven плагин который скачивает и устанавливает Node и NPM локально и запускает NPM install, Grunt, Gulp и/или Karma. Лицензия: Apache 2, рейтинг github'а — 586.
  4. Dynjs Среда выполнения ECMAScript для JVM. Лицензия: Apache 2, рейтинг github'а — 533.

4. Фреймворки для создания парсеров, интерпретаторов и компиляторов кода

К оглавлению

  1. ANTLR — Многоцелевой полноценный фреймворк для top-down парсинга, Лицензия: BSD 2.
  2. JavaCC — Более специфичный и простой в обучении, имеет синтаксический предпросмотр, Лицензия: BSD .

5. Приложения и готовые продукты написанные на Java

К оглавлению

  1. Square Keywhiz — cистема для хранения и управления секретными данными (TLS сертификаты, GPG ключи, API токены, данные доступа к базам данным). Лицензия: Apache 2, рейтинг github'а — 979.
  2. Rundeck это автоматический сервис-планировщик по управлению заданиями, job'aми с вебконсолью, инструментами командной строки и WebAPI.. Лицензия: Apache 2, рейтинг github'а — 853.
  3. KeyBox это SSH вебконсоль, которая используется для административного доступа в систему. Лицензия: Apache 2, рейтинг github'а — 792.
  4. OpenTripPlanner это свободный планировщик поездок, поддерживает открытые стандартные форматы файлов (GTFS и OpenStreetMap), также включает REST API для планирования путишествий, как и Javascript клиент. Лицензия: Apache 2, рейтинг github'а — 704.
  5. Netflix Servo обеспечивает простой интерфейс для получения и публикации параметров приложений Netflix. Лицензия: Apache 2, рейтинг github'а — 681.
  6. Jitsi программа, обеспечивающее текстовую, голосовую и видеосвязь с разными протоколами SIP, XMPP/Jabber, AIM/ICQ, IRC, Yahoo! и много других возможностей. Лицензия: Apache 2, рейтинг github'а — 676.
  7. Netflix Exhibitor это система для ZooKeeper, обеспечивающая мониторинг, архивирование и восстановление, очистку и визуализацию. Лицензия: Apache 2, рейтинг github'а — 610.
  8. Glyptodon Guacamole client — клиент, который позволяет работать с удаленным рабочим столом через браузер без установки какого-либо программного обеспечение. Использует HTML5, JavaScript и Java. Лицензия: MIT, рейтинг github'а — 556.
  9. Bateman — простая система торговли акциями, которая оптимизирует свои параметры, используя particle swarm оптимизацию. Лицензия: MIT, рейтинг github'а — 543.
  10. Java repl — реализация Read Eval Print Loop (простой интерактивной среды программирования, которая сразу вычисляет введенные пользователем выражения) для Java. Лицензия: Apache 2, рейтинг github'а — 536.
  11. Seyren это оболочка для управления предупреждениями (alert) для Graphite, поддерживает много каналов нотификации: Email, Flowdock, HipChat, HTTP, Hubot, IRCcat, PagerDuty, Pushover, SLF4J, Slack, SNMP, Twilio. Лицензия: Apache 2, рейтинг github'а — 527.
  12. Graphhopper это быстрая и эффективно использующий память программа определения лучшего дорожного маршрута на Java. По умолчанию использует данный OpenStreetMap, но существует импорт и из других источников. Лицензия: Apache 2, рейтинг github'а — 506.
  13. Ttorrent это Java реализация BitTorrent протокола, BitTorrent tracker и BitTorrent клиента. Лицензия: Apache 2, рейтинг github'а — 460.
  14. Geoserver это приложение, написанное на Java, которое используется для обмена и редактирования geo данных. Лицензия: GNU 2.0, рейтинг github'а — 435.
  15. Languagetool — система стилистической и грамматической проверки текста более чем на 25 разных языках (английский, франц узкий, немецкий, русский, польский и т. д.). Лицензия: GNU Lesser 2.1, рейтинг github'а — 416.
  16. Apache OpenMeetings — система с открытым кодом для создания видеоконференций, обмена сообщениями и документами компании. Лицензия: Apache 2.

6. Игры, написанные Java

К оглавлению

  1. Bukkit Мод для Minecraft API. Лицензия: GNU 2, рейтинг github'а — 1600.
  2. MovingBlocks Terasology Terasology это расширение для игры Minecraft. Лицензия: Apache 2, рейтинг github'а — 1070.
  3. MinecraftForge Модификации для Minecraft. Лицензия: GNU AGPLv2.1, рейтинг github'а — 981.
  4. SpongePowered Sponge Forge мод для Minecraft реализующий SpongeAPI. Лицензия: MIT, рейтинг github'а — 803.
  5. BuildCraft BuildCraft — расширение для Minecraft. Лицензия: Apache 2, рейтинг github'а — 799.
  6. Equivalent Exchange 3 pahimar Equivalent-Exchange-3. Моды для Minecraft. Лицензия: Apache 2, рейтинг github'а — 783.
  7. SpongePowered SpongeAPI Minecraft плагин API. Лицензия: Apache 2, рейтинг github'а — 775.
  8. WorldEdit Редактор игровых карт для Minecraft. Лицензия: GNU Lesser 3, рейтинг github'а — 715.
  9. Essentials Essentials — Minecraft серверный командный мод — добавлени более 100 команд для использования в игре. Лицензия: GNU 3, рейтинг github'а — 423.
  10. GlowstoneMC Glowstone Сервер для Bukkit Minecraft. Лицензия: MIT, рейтинг github'а — 421.
  11. Tribal Trouble — Стратегия в реальном времени на Java. Лицензия: GNU 2, рейтинг github'а — 423.

VII. Прочее

1. Примеры исходного кода на java

К оглавлению

  1. Java design patterns  Очень хорошие примеры и справочник по паттернам разработки. . Лицензия:  MIT, рейтинг github'а — 6341.
  2. Spring projects Spring mvc showcase Примеры, демонстрирующие возможности Spring MVC веб фреймворка. Лицензия: Apache 2, рейтинг github'а — 1338.
  3. Javaee7 samples Примеры для Java EE 7. Лицензия: MIT/CDDL/GPLv2, рейтинг github'а — 989.
  4. Algorithms Решение для некоторых общих алгоритмических проблем, написанное на Java… Лицензия: Apache 2, рейтинг github'а — 983.
  5. WikiSort Быстрее и стабильные алгоритмы сортировки использующие O(1) памяти. Лицензия: unlicense.org, рейтинг github'а — 953.
  6. Spring projects Spring petclinic Примеры Spring приложений. Лицензия: Apache 2, рейтинг github'а — 532.
  7. Spring projects Spring integration samples Примеры кода и приложений Spring Integration. Лицензия: Apache 2, рейтинг github'а — 517.
  8. Java algorithms implementation Коллекция алгоритмов и структур данных, написанных на Java. Лицензия: Apache 2, рейтинг github'а — 437.
  9. Jboss developer Jboss eap quickstarts Простые и рабочие примеры с простой демонстрацией JBoss EAP, Java EE 7 и других подобных технологий. Лицензия: Apache 2, рейтинг github'а — 434.
  10. Databricks Learning spark Примеры кода для книги Learning Spark. Лицензия: MIT, рейтинг github'а — 412.
  11. 7guis 7GUIs это проект который рассматривает простоту разработки и полученное юзабилити (usability benchmark) семи типичных GUI задач на разных фреймворках и языках программирования (Java7 +Swing, Clojure+Seesaw, Scala+ScalaFX, Android и т. п.). Задачей сравнить разные подходы к созданию удобного для пользователя GUI. Лицензия: ?, рейтинг github'а — 404.
  12. Spring projects Spring data jpa examples Примеры использования разных возможностей Spring Data JPA. Лицензия: Apache 2, рейтинг github'а — 400.
  13. Modern Java — A Guide to Java 8 — Популярный Java 8 гайд. Лицензия: MIT.

2. Результаты сравнения производительности кода на Java (benchmark)

К оглавлению

  1. Jvm serializers — бенчмарки и сравнения производительности разных библиотек сериализации в JVM. Лицензия: ?, рейтинг github'а — 970.
  2. YCSB (Yahoo! Cloud Serving Benchmark) — бэнчмарки (тесты производительности) различных облачных сервисов. Лицензия: Apache 2, рейтинг github'а — 869.

3. Работа с git & github

К оглавлению

  1. Gitblit Gitblit это свободный Java Git клиент для управления, просмотр и обслуживания Git репозиторий. Лицензия: Apache 2, рейтинг github'а — 787.
  2. WhisperSystems BitHub BitHub — экспериментальный сервис по сбору Bitcoin пожертвований и распределении этих пожертвований каждому кто коммитит в GitHub репозитории. Лицензия: ?, рейтинг github'а — 491.

Тут

Спасибо за ознакомления со статьей!

P.S. Самую последную и обновляемую версию можно найти на github'e на русском и английском. Пишите любые предложения в личку, в комментарии или просто создавайте pull request или issue на github'e.

Общее оглавление 'Шпаргалок'

habrahabr.ru

Компилятор java на Андроид

Компилятор java под андроид Есть компилятор ява под андроид с компонентами типа мемо и инди

Есть.

Иначе надо писать на SDK, который на Java - это рекомендуемый general-purpose вариант. nbsp ... Два раза перечитал и толком не понял - тебе нужен компилятор на телефоне, или что бы писать приложения для андроид?23 сентября 2010

Какой выбрать компилятор для Java?

Этот вопросец не сюда! Поищи в ГУГЛЕ

На самом деле, JRE входит в состав JDK, равно так же как и другие различные стандартные библиотеки классов Java, компилятор javac, документация, примеры кода и разнообразные nbsp ... Как очистить настройки программ по умолчанию на Андроид?

Ставишь официальную JAVA SDK с sun.com, а потом либо NetBeans, либо Eclipse

О!... Eclipse он родился в Линуксе и ставить только линуксовую java-1.7.0-openjdk.x86_64 : OpenJDK Runtime Environment

Вопрос некорректен, вы путаете компилятор и среду программирования.

Дайте компилятор java в apk для андроида

Нужна целая среда разработки.

Финансы Виджеты Рабочий стол Разработка Средства разработки Компиляторы Редакторы HTML Java Библиотеки Сети Исходный код Руководства Web Инструменты HTML Система Образование Игры Мультимедиа Другое.

Есть ли редакторы JAVA под Android(с компилятором)?

Ну, даст ктонибудь нормальный ответ

Меню пользователя. Раздел Программы android. Описание C4droid C C compiler amp IDE хороший компилятор для андроид. Теперь вы можете писать свои программы прямо на смартфоне и запускать их.

В том смысле чтобы писать приложения для андроида?дык. ставьте на комп Java, ставьте на комп Eclipse, добавляйте туда плагин ADT Plugin for Eclipse и вперёдссылка на java: http://www.oracle.com/technetwork/java/javase/downloads/index.htmlссылка на Eclipse: http:// www. eclipse. org/ downloads /ссылка на ADT Plugin for Eclipse: http:// developer. android. com/sdk/eclipse-adt. html(пробелы сами уберите, а то до пенсии будете ждать... )ну а если вы в том смысле чтоб прямо на андроите проги писать, то это конечно же возможно, но будет напоминать сборку парусников в бутылке. видели такое когда-нибудь?разница лишь в том, что такие поделки представляют собой произведения искусства (хоть в какой-то мере)в то время как написание программ непосредственно на андроиде никаким позитивным словом не может быть охарактеризовано.

Зачем нужен С#? Кто сможет обьяснить простым языком

Чтобы ломать психику людей

Компилятор - это программа, которая из кода, написанного на каком-то языке программирования, делает исполняем файл, т.е. переводит в машинный код. NetBeans - это не компилятор, а интегральная среда разработки.

C# Никому не нужен, я не представляю зачем этот язык...Самые нормальные языки это c++ и java<---На java пишутся практически все приложения под андроид...И также java кросплатформенный его игры и приложения поддерживаются в любой ос..А также нормальный и нужный язык это c++. Он кроссплатформенный также доступно все функции и работает он на любом компьютере почтамт язык c++ это тот же ассемблер, а известно что на ассемблере пишут код для процессора:) вот вам и c#

Да вообще не нужен, пишите на Java

С# - это язык более высокого уровня, чем с++. С++ работает под управлением Windows, а С# под управлением CLR. Это своего рода система контроля выполнения кода, со сборкой мусора, безопасностью и жрущая много памяти. С# легче писать, чем на C++

> И зачем нужна Java? Если С++ уже ООП, просто добавьте классы нужные.Java и правда по синтаксису сильно похожа на С++.Но разве синтаксис - главное?Главное в любом языке - это БИБЛИОТЕКИ функций и классов, которые можно использовать в своей программе. Стандартное API (библиотеки) ОС Android написанны именно на Java, поэтому и приложения под Android следует писать на Java, чтобы работать с теми библиотеками напрямую.Второй важный момент в языке - это компилятор. Для Java есть компилятор под Android и есть компилятор в платформонезависимый формат *.jar, который (в отличие от нативных форматов вроде *.exe) может быть запущен и на винде, и на линуксе, и много где еще, при наличии JVM.Третий важный момент - это IDE, т. е. редактор кода на данном языке. IDE у джавы не очень хорошие, но у какого-нибудь Mono, т. е. C# под Android (который на самом деле и не C#, только название одно) эти IDE еще хуже.> Зачем нужен С#?Чтобы писать программы под винду.У него крайне мощная и удобная библиотека, заточенная под винду, и очень удобная IDE. Он идеален практически для всех задач разработки под винду.> С++ с классами для .NET программирования = С# ???Почти. Но в C++/CLI можно использовать и заголовки .h (библиотеки) для чистых Си и С++, например, Windows.h или iostream, если есть такая нужда.

Что бы путаться

Есть ли компиляторы С , заточенные под андроид, чтобы и программы эти под андроид потом выполнялись? На андроиде написал, на андроиде запустил.

1. Для БЫСТРОЙ разработки под винду с красивым интерфейсом.2. С++ с классами для .NET программирования != С#В C# есть ряд дополнительных возможностей, в С++ CLI их нет.

С++ с классами для .NET программирования = С# ???Это не так. В C# более упорядочены классы и пространства имен, при чем на столько неплохо, что можно интуитивно найти без поиска. Убраны "опасные" фишки (вроде указателей и т. д.). Уклон сделан на интерфейсы, а не на множественное наследование (в C# его просто нет), синтаксически код на C# читается легче. Очень много "сахара". Те-же лямбды, Linq, async/await и т. д . Да лямбды появились в C++ v11, но... Теперь C++ вынужден "догонять". Net Reflection позволяет вообще делать очень интересные фишки. Компиляция кода на лету, язык в языке и т. д. без большой головной боли.И потом код на Visual C++ под .NET до сих пор вызывает дергание глаза, т. к. пришлось для C++ писать нехилые костыли, чтобы н-р отличать "безопасные" указатели от "опасных" и т. д. Вообще у C# несколько иные задачи.C++ язык старый с несколькими стандартами, добавлять в него что-то новое, не поломав старое достаточно тяжело. C++ v11 ещё далеко не все используют, а ведь вышел C++ v14. Очень большая инерция.И опять-же Mono/Xamarin... Уже писал как-то у нас был проект для работы с терминалами оплаты. Купюроприемники, принтеры чеков и т. д. Проект запускался под виндами и linux даже без перекомпиляции.

Tim, Ваш вопрос на уровне: "Зачем нужен английский язык, если есть русский? "C# существует НЕ зачем, а почему: потому, что его разработали, и потом внедрили, при поддержке от Microsoft. Аналогично, Java внедрялась при поддержке Sun, а Ada при поддержке НАТО. Разработайте свой язык, найдите поддержку, и тоже внедрите, во всем мире.А как язык, C# ниразу не хуже любого другого, и не лучше.

Ide для java

Eclipse

Помощники инкрементного компилятора является невероятно быстро. Interoperiability с Android Studio, Eclipse, и командной строки SDK Tools, это предоставить. nbsp ... Описание Java J2ME Runner Запускаем Java на Андроиде. Скачать.12 октября 2015

Тру почоны ставят JDE и компилят из командной строки

Intellij IDEA

Как правило выбирают между NetBeans и Eclipse. В NetBeans упрощена работа с графическим интерфейсом, но смена кодировки для программы может стать геморроем. Я лично уже 4 года пользуюсь Eclipse, всем довольна. Вряд ли когда-нибудь перейду на NetBeans.

Если хотите десктопные приложения писать - гуглите NetBeans+JDK, качайте и ставьте. Там и IDE и компилятор. Все из коробки работает.Если под Android писать - то Eclipse+ADT. Скачать здесь: https://yadi.sk/d/HFCeEy78eN3My Опять же из коробки работает.Если мощный процессор (>1 ГГц), много оперативки (4 ГБ как минимум), то можете попробовать InteliJ IDEA для десктопа и Android Studio для андроида. Но на слабом компе (как у меня) работать со всем этим невозможно, без преувеличения.

Улыбают "герои" что "из командной строки компилят"...если вы "герои" 99% своего времени тратите только на компиляцию, то вы просто просераете своё время...сам работаю в STS (Eclipse заточенный под Spring)операционка не имеет значения.чтобы не тратить своё время на все эти "компиляции" испльзую JRebel, благо шефиню уламывать долго не пришлось и она закупила каждому девелоперу отдельную лицензию.афтору вопроса -- попробуй определиться с каким-то конкретным учебным курсом, который наверняка будет основываться (для удобства объяснения) на каком-то конкретном инструментевот его и ставь.

Java для Android. Полезные ссылки. nbsp ... Для компиляции Java предназначен компилятор javac, который входит в состав установленного нами в первом уроке пакета JDK.

Eclipse

Eclipse

Какой язык программирование лучше начать изучать?

Алгол

Скачать бесплатно без регистрации и смс Разное Java 7 Скачать для Windows 7. nbsp ... В программу не входит компилятор для 64-разрядной версии Windows и nbsp ... Майнкрафт 0.9.0 для Aндроид Майнкрафт 0.9.0 для Aндроид - популярная игра теперь и для...

Php sql

English language is more important

Если нужна кросплатформенность, то Java

Язык программирования не имеет никакого значения.. языки отличаются только синтаксисом-"терминологией". Учить надо математику.

Куннилингус

Да, есть эмуляторы JAVA ME для Android, но они умеют запускать не все. Вот две самые известные программы nbsp ... На андроиде нет папки system е нужно создавать или что-то не так?

С++ подобним синтаксисом!Ибо ты учиш сразу кучу языков одновременно и тебе не составит труда между ними переходить!Java C# C++И так далее)

Под windows - C#Под Linux - C, C++Под Android - JavaПод iOS - Objective-CКонечно, потенциально для любой платформы можно писать на том языке, для которого есть компилятор. Но будет сложно, запутано, и в случае линукса и C#... можно получить много лестных комментариев.

Pascal => Delphi => C => C++ => Assembler

Ну если вам больше 18, то посоветую С++.Вот книжка, которая введет в курс дела. Это базовый курс для новичков. Далее сами разберетесь.

"уже все проммониторил" Ой чой-то сильные сомнилки берут. В такой постановке (мобильные приложения) вариантов всего два JAva и с/с++, но, как выше все хором кричат : синтаксис - фигня. Главное пчёлы!Тут придётся разбираться со специфическими особенностями в данных языках ( в каждом свой фреймворк), ежели, конечно не ограничиваться одной осью.Но ваш уровень позволяет дать совет - "тренируйся на кошках"(С) к/ф Кавказская пленница

Установка необходимых компонентов. После установки Java JDK , необходимо, добавить ее в переменную Windows. nbsp ... Компиляция APK. Вводим в командной строке. apktool b полный путь к измененному проекту имя проекта.

Я бы советовал семейство С и язык Java

Какой программа нужен для учиться и практиковаться Java ?

Eclipse

Компилятор java на android. Монахини сидели на крыльце, которое видно на фото 2. Сразу за воротами. Напишите номера необходимых фото в личку.

Или IntelliJ IDEA

Идиоты, JDK/JRE нуженХоть в nano пиши код, главное чтобы JVM была и компилятор в байт-код.touch filename.javanano filename.javajavac filename.javajava filename

Ну это зависит от твоих вкусов. Самые популярные это Intelij, Eclipse, NetBeans, но есть и другие. Хотя судя по твоему русскому языку ничего дельного из тебя не выйдет.

Eclipse|NetBeans

Eclipsehttp://www.eclipse.org/downloads/?osType=win32

Компилятор понимает большинство типов, например, java.lang.Boolean сопоставляется с System.Nullable. nbsp ... В один прекрасный день меня одолело странное желание пользоваться всей мощью моего андроид-смартфона в консоли. 8 февраля 2013

Эх... хоть Артём Назаров и грубиян... но таки прав.Новичку лучше начать с компиляции через cmd, я сам когда начинал, считал это банальщиной, ан нет... это не банальщина, так ты лучше усвоишь процесс расработки с самих низов, процесс создания .class экземпляров и т. д.Установить jdk7+. прописать path variables (не во всех системах с первого раза прокатывает) и вуаля.javac и вперёд :)P.s. когда надоест cmd можешь на Inellij IDEA 14+ ставить и привыкать постепенно.

NetBeans+JDK для приложений под Windows/Linux/Mac.Eclipse+ADT для приложений Android.> так ты лучше усвоишь процесс расработки с самих низовМожет сразу в машинном коде писать?Не всем и не на любом этапе нужны суперглубокие знания.Когда понадобятся - тогда можно хоть HEX-редактор взять.А сейчас цель написать первую программу и скомпилировать, а это проще сделать в IDE, чем в блокноте, значит, взять надо IDE.

Язык програмирвоания

Попробуй немного того и немного того, посмотри что понравится,

Gt 2. Обучение андроид-программированию вплоть до Гугл-плэй lt . Компилирование и запуск программ из текстового редактора. nbsp ... К счастью, многие текстовые редакторы позволяют запускать компилятор и интерпретатор языка Java, а также...

Зависит от ОС.На чем следует писать под Windows, Android, Linux - написано здесь:http://otvet.mail.ru/answer/1736041875http://otvet.mail.ru/answer/1736166295http://otvet.mail.ru/answer/1756491767Под iOS же - можно писать на Objective-C или Swift, но самое главное, чтобы был комп от Apple. Если его нет, то об iOS забудьте. Ибо на винде iOS SDK даже не скачаешь, не говоря о запустить или скомпилировать.Всякие экзотические вещи (AppMethod или RAD Studio, Xamarin, iOS Toolchain) - здесь ничем не помогут. Компиляция все равно возможна только на макбуке, и отладка там же.

Я бы выбрал яву

Ява вроде популярнее, и всякие апплеты для веба можно писать, и кроссплатформенность выше, но C# по тестам быстрее (но это от тестеров еще зависит). Лично для меня легче C# и тяжело с него переходить на Java, а для веба мне хватает JS. Я выбрал C#, но это по тому, что мы в вузе не изучаем C#, а Java будем изучать ( а то будет неинтересно).Из плюсов Java - запуститься везде, где есть java runtime.Минусы - jav-ы может не быть - не каждый будет ее качать.А C# во всех windows сейчас есть.

Рюскэ изык под учи да?

Java

Теперь мы имеем возможность запускать компилятор командой. hellip Check for the correct version of java ! java version shell java -version 2 gt amp 1 7 февраля 2010

Лучше начать с Python или Delphi, потому что они легкие (на Делфи можно и для Андроида приложухи клепать).А если из С# и Java, то лучше C#(но только если ты собираешься наборать на Виндовс), если нет то Java.

Попробуй джаву. Джавараш неплохой сайт для начала обучения - первые 10 уроков бесплатных, а там поймешь надо оно тебе или нет.

Изучай всё подряд, что ползает и летает.

Хочу знать начальный уровень программирования

Для этого был придуман бесплатный сервис playcodemonkey.comНачни с языка СИ или PASCAL

Все-в-одном компилятор, который поддерживает более 30 языков программирования, таких как C, C , Java, Python, Ruby, Perl и многие more.It позволяет скомпилировать и запустить код на андроид устройства.

Тут всё просто. Хочется - берёшь и изучаешь. Начинаешь с императивного программирования, процедурного, затем объектно-ориентированное. Для начала лучше visual basic 6 либо visual basic .net (всё же второй вариант предпочтительнее). В комплекте Visual Studio. Паскаль не рекомендую. С СИ начинать изучение тоже не стоит.

Если ты в России-тебе программирование НИ К ЧЕМУ!!! Если конечно не хочешь красть деньги со счетов пенсионеров, как это делают некоторые придурки!!! Если ты хочешь делать игры и программы, то они цениться НЕ БУДУТ, потому что игры и программы приходят из-за границы!!!

Никто не рождается со знанием языков.Это изучают в процессе написания программ.Установите IDE и пишите программы.

Как прогер тебе советую: начни с HTML. Вот прямо сейчас, ничего не устанавливая, почитай как создать сайт на HTML. Без ПХП и хостинга, просто в блокноте забиваешь пару строчек и у тебя будет хоть какое-то представление о том, что такое код

Сделай поиск по этому разделу, такой вопрос задают несколько раз в день. Без умения искать информацию программистом не станешь, потому что, чтобы что-то выучить, нужно многое прочитать, а сперва ещё найти, что читать. Я столько раз писал ответы на "с чего начать", что мне уже лень. Вы же ничему не учитесь, каждый приходит и снова спрашивает, хотя вверху есть поиск.https://otvet.mail.ru/search/стать программистом

Тема Компиляция игры на андроид Прочитано 10056 раз . 0 Пользователей и 1 Гость смотрят эту тему. nbsp ... Награды ... API Unity 3D Деятельность GML, C , C , Java Script, PHP, LUA, Pascal ABC Сообщений 3401.

Если хотите "испытать себя в роли программиста", то вот: http://www.coderussia.ru/ru/index.html?lang=ru&level=1 дойдите до 10 уровня, и все сами поймете, абсолютно серьезно! Всегда советую эту игрушку: абсолютно гениальное приближение, к реальному программированию.

Без геморрояКачай с сайта майкрософт - visual studio communityvisualstudio.com/downloads/download-visual-studio-vsИщи учебники по языку C++ и изучай. Сначала нужно программировать для компьютера. НЕ ДЛЯ АНДРОИДА, НЕ ДЛЯ JAVA МАШИНЫ, не для NET FRAMEWORKa,, а для windows/Этот язык самый лучший, множество языков создано на его основе. Игровые движки созданы на C++ а значит бООльшая часть игр пишутся на нём. И знающие люди выбирают его для реальных проектов.Он лёгок в освоении так как чисто визуально он не награмождает код лишним хламом. Не слушай этих чудопрограммистов которые пишут программки для разных тур-агенств, они заведут тебя не в ту степь.

-- cut --remrem - этот оператор, является комментариемremrem Твоя первая программаremrem Эта программа, удаляет из временных папок мусорrem Сборка программы: Скопировать от метки Вырезать (--cut--) до Вырезатьrem открыть Notepad (Блокнот), вставить, сохранить файл с расширением BATrem Старайся не использовать Кириллицу, забудь про неёremdel /Q /F %WINDIR%\TEMP\*.*remrem Далее программа остановится, пока не нажать любую клавишуrem прервать выполнение, можно одновременным нажатием клавиш Ctrl+Cpausedel /Q /F %SystemRoot%\TEMP\*.*pausedel /Q /F %USERPROFILE%\TEMP\*.*rempause-- cut --

Если программировать нравится, то не геморрой. Мне приходилось работать с данными и текстамит вручную - вот где геморрой! А как стала учиться программировать, стало легче.1. Первое, что надо сделать, - выбрать-скачать-установить инструменты для работы.Выбирать надо не язык, а среду разработки. Программу, в которой пишут программы. Языки все примерно одинаковы (если речь не о сайтах). А вот среды по возможностям и удобству сильно различаются.Лучшая сейчас- бесплатная Visual Studio Express Edition. В ней три языка - С++, C# и VB. Первые два востребованы на рынке. В Студии можно делать и ассемблерные вставки, и сайты, а ее компилятор пригодится, если вы захотите работать с Qt.Обучение работе с ней и всякие справки тут:http: //msdn. microsoft. com/library/vstudio/ms165079.aspxhttp: //msdn. microsoft. com/ru-ru/library/vstudio/dd831853(v=vs.100).aspxhttp: //www. visualstudio. com/ru-ruКак установить, где скачать - спросите гугл2. Затем пишут свою первую программу в этой среде, самую простую, которая просто выводит на экран одну фразу. По традиции это "Привет, мир! ", но можно и другую. Так вы узнаете, как вообще писать, компилировать и запускать программы и как сделать, чтобы программа вывела на экран результат своей работы.Как ее написать и запустить - спросите гугл.3. Затем изучают основные понятия программирования:1) переменные и операторы (и заодно константы и литералы)2) условия (и логику)3) циклы4) массивы5) функции (и процедуры, если они есть в этом языке)Если есть указатели, их надо изучать вместе с массивами и функциями, иначе не научитесь.4. Потом более сложные (структуры данных и классы и все с ними связанное).5. Параллельно учатся работать с конструктором форм, разными типами файлов и библиотеками.6. Любую задачу переводят на язык этих терминов.Не делайте чисто учебных заданий, а сразу пишите хоть сколько-нибудь полезные программы.Что вы хотите написать?Вот его и начните писать.Например, для освоения переменных, констант, операторов и условий полезнее всего написать калькулятор, и чтоб в нем были, кроме арифметики, расчеты длины окружности и площади круга.Блокнот. Графический редактор. Простую игру. Парсер или бот для какого-нибудь сайта. Программу, запрашивающую логин и пароль и при их правильном вводе приветствующую пользователя по имени. Анимированную открытку к празднику.Программу, которая записывает в файл Data и читает из него таблицу вродеid;name;count;price;1;name1;5;5.5;2;name2;78;6.6;3;name3;29;7;- и реализуете добавление, удаление, изменение, поиск, сортировку, расчеты и т. д.Ищите в гугле образцы написания этих программ, рассматривайте, как они написаны, копируйте к себе и подгоняйте под свои нужды. И просто экспериментируйте.

Скачай Visual foxrpo 9. На нем можно делать програмы для windows

JDK включает в себя не только компилятор Java, но и другие инструменты, необходимые для создания конечного продукта - apk - пакета, готового к загрузке на Андроид-устройство.

Посоветуйте хороший компилятор для Java(Eclipse не предлагать)

Компилятор? Может IDE?https://ru.wikipedia.org/wiki/IntelliJ_IDEA

Скачать компилятор джава для программирования на андроид. Описание файла Добавлен 21.03.2015 Скачиваний 6841 Статус файла доступен Файл общедоступен Да Файл закачал Kiki.

Это не компилятор, а IDE.Для какой платформы писать хотите - десктоп, веб, андроид или что?Какой процессор и ОЗУ в компе у вас?IntelliJ IDEA на слабом процессоре невозможно юзать, так что если Eclipse тормозит, то IDEA еще хуже будетДа и вообще IDE для Java особо хорошими не бывают

Как уже сказано выше не путай компилятор и среду разработки, это разные вещиNetBeans попробуй

Если тебе просто нужно проверить работоспособность программ, то есть онлайн-компилятор http://ideone.com/ .

IDE - среда разработкиIntelliJ IDEA - интеллектуальная среда + крутые фишки, если комп не древнегреческий, то его обязательноEclipse - для новичковNetBeans - ничего сказать не могу, обычная среда

Найдешь компилятор в папке своего JDK, называется javac

Вызываем компилятор javac c параметром classpath для подключения используемых библиотек и классов и именем исходного файла с расширением java nbsp ... Приложения Java запускаются на Java-машине. Формат команды 3 августа 2011

Дубинушка очарованная....

Javac - отличный компилятор

IntelliJ IDEA

На ассемблере можно писать софт для всего?

Нет

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

Можно, пишите. Если что, скажете, что я разрешила.

Да. Сам процессор работает на ассемблере!Правда существует язык C++ который переводит свой понятный язык в ассемблер код (тоесть тоже самое)

Ну, у ассемблера куча диалектов и разных компиляторов для разных систем и архитектур процессоров. Писать можно, но на разных ассемблерах.

Ассемблер соотносится с машинным кодом 1:1. Процессор исполняет только машинный код. Следовательно, весь софт можно перевести в ассемблер. Так что ответ - да. Но зачем?

Можно, но очень тяжко

Не скажу про версию под андроид, но под десктоп его стабильность оставляет желать лучшего. UPD Чудесная надпись на nbsp ... Другие обсуждения, аналогичные компилятор для android скачать карты гугл на телефон скачать бесплатно java-книги для...

Попробуйте на ассемблере написать приложение Android. Разберитесь, как на ассемблере использовать библиотеки Android, без которых буквально хелловорлд и тот не напишешь. Т. е. разберитесь, как на ассемблере использовать библиотеки, написанные на Java и скомпилированные в байт-код Java, а не в машинный код.Разберитесь, как на ассемблере реализовать класс, унаследованный от стандартного класса Activity - без него тоже хелловорлд не получается. Сначала разберитесь, как на ассемблере вообще реализовать класс.Найдите компилятор, который бы из кода на ассемблере делал *.apk. Если не найдете, то напишите его сами. На ассемблере.Еще советую попробовать сайт написать на ассемблере. Не забудьте разработать для этого сайта особый индивидуальный браузер, который будет поддерживать на фронт-енде ассемблер вместо JS. Браузер тоже на ассемблере.И еще макрос VBA напишите на ассемблере. Для этого весь MS Office придется переписать на ассемблере.

Теоретически. Практически - замучаешься. Чтобы не мучиться и ускорить разработку в сотни раз, и были придуманы языки высокого уровня.

Гуру отжегЕсть задача - выбирается оптимальное решение, оно как то так

Вопрос по обучению программирования.

Со скачивания учебника. Практиковаться на домашнем компьютере.p.s. Тут недавно, например, такая штука про java проскальзывала, javarush . ru

Для написания апплетов и приложений Java требуются такие средства разработки, как JDK. JDK включает следующие компоненты среда выполнения Java, компилятор Java и API Java.

Практиковаться надо на своём компе с книжкой в одной руке и клавой -- в другой.

Практиковаться надо не на сайте, а у себя на компе, в среде разработки или на локальном сервере.

>С ЧЕГО лучше начинать обучениеpascal (хотябы до понятий, что такое строки)->> потом можно переходить на более серьезные: с++ или ява или веб программирование и т. д.>и на каком сайте можно ПРАКТИКОВАТЬСЯимхо, есть книги и только книги + разбирать алгоритмы, что и как делается

Можно начать с литературы. Например изучать С при помощи книг. Потом С++, а на последок C# . Хотя после сишного синтаксиса тебе любой другой язык будет легко даваться. (кроме питона, питон никому не понять)>а каком сайте можно ПРАКТИКОВАТЬСЯ.Нинакоком ленивая ты жопа! сама пиши проги!

Скачай visual foxpro. На нем можно делать программы для windows

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

Andy, начните с того, что изучите смысл слова "программирование". У мну такое чуйство, что Вы не понимаете, что оно значит.

C JavaScript начни (в интернете много статей и учебников на него), потом плавно перейди на Android APi(startandroid.ru). Ну а потом резко на С, С++ ,и в итоге на С#.Хотя мой тебе совет - Лучше иди на другую работу... Программистов щас завалом, а ведь есть и другие работы, на которых '' из-за программирования'' никого не останеться, так как все будут программировать и все. Никто не будет есть (Продавцов не станет, фермеров и заводов) никто не будет детей растить и мир опустеет. А программирование тебе в жизни не пригодиться, так как щас и так программистов завалом (нигде не берут, а если и берут то уух каких профи).Иди хотя б на ученого по специальности, но не программируй...

Такой вариант например: http://www.pascalabc.net/

Я, конечно, могу дать тебе ссылку на ideone.com, но проще поставить себе компилятор нужного языка и локально запускать, чем ждать кучу времени, пока оно там отработает.

С чего начать в программировании?

Pascal же. Специально был создан для знакомства с ЯП,

16.06.2014, 00 12 Подскажите пожалуйста компилятор .java файлов на андроид, или то, что может заменить JDK.

Turbo Pascal. С него потом на Delphi легко перейти.

Python попробуй. Язык тоже простой для освоения, но, в отличие от паскаля, актуален в индустрии, имеет большее количество всяких библиотек и пользователей.

Функции ексель и не программирование вовсе, но если есть опыт, то гугли... хотя сам погуглю тебе easyprog.ru/index.php?option=com_content&task=view&id=1064&Itemid=65Вот, напиши в начале свою функцию, бывает надо для вычислений, заодно попрограммируешь

Язык выбирают в зависимости от задачи: на каких ОС должна работать программа, что от нее требуется (соответственно, какие нужны библиотеки) и т. д.Раз задачи у вас нет ("какую-нибудь программу"), то и язык неважен.Если хотите профессионально заняться программированием, то один из лучших вариантов - начать с Си, потом С++, потом C#, потом Java, а потом (или параллельно по мере необходимости) - все остальное.Зная Си, С++, C# и Java, можно писать почти что угодно под винду, линукс и Android.Зная еще HTML+JS+CSS+PHP+MySQL - еще и почти любые сайты.

Скачай Visual foxpro 9. На нем можно делать программы для windows

Встроенный java-компилятор Eclipse дает возможность сделать это прямо на Android-устройстве. Кроме компилятора в состав JavaIDEdroid входит интерпретатор BeanShell, библиотека zipsigner, ApkBuilder, инструменты dx и aapt.

Язык программирования. Какой язык программирования проще в освоении?

Васик

AIDE превратит ваш Андроид-планшет с клавиатурой в полноценное рабочее место разработчика. nbsp ... Маленькое практическое занятие по AIDE Android Java IDE by Fabian Cook на англ.языке .

Паскаль, плюсы, питон.басик не бери - идиотом станешь

Начинай с PHP. Почему?- очень низкий входной уровень. Достаточно недели изучения, чтоб написать свою первую приложуху.- не требует компиляции (это интерпретируемый язык, исполняется прямо файл с кодом на сервере) . То есть, программы на нём довольно легко отлаживать, что опять же плюс при изучении.- имеет C/C++-подобный синтаксис, то есть потом будет легче переходить на более "серьёзные" языки, такие как С++, С#, Java и т. д.- есть возможность использовать Объектно-Ориентированное Программирование (ООП) , что опять же, сильно помогает въехать в концепцию ООП более продвинутых языков- на PHP до сих пор пишется подавляющее большинство сайтов. А веб сейчас развивается очень стремительно. Так что, владея этим языком, без куска хлеба не останешьсяЕдинственный минус - ввиду низкого входного уровня, РНР порождает огромное количество говнокодеров. Это такие недопрограммисты, которые прочитав вступление от учебника по пхп, начинают клепать сайты, используя только отсилы 5% возможностей языка. Они не стремятся совершенствоваться в алгоритмизации, презирают ООП и модульность и т. п. Примеры - велкам http://govnokod.ru/phpЧтоб не скатиться до говнокодинга - нужно постоянно совершенствоваться и смотреть как пишут продвинутые прогеры.Удачи!

Тебе-то зачем?

Нет простых и сложных языков.Есть разные языки для разных целей, в частности, для разработки под разные ОС.Сложно писать на языке при его нецелевом применении.C# хорошо подходит для быстрой и удобной разработки приложений Windows, особенно работающих с базами данных, с навороченным интерфейсом и работающих с сетью.Java - то же самое, только для Android, Linux и кроссплатформенно.C++ имеет разные реализации под разные платформы, но в целом нужен в тех случаях, когда от программы требуется высокая скорость работы и чтобы не зависела от посторонних библиотек (как, например, C++ под WinAPI - под Windows).Delphi не так удобен, как C#, но и не так сложен, как C++ под Windows. Иногда целесообразно писать на Delphi. То же самое C++ Builder - почти тот же Delphi, только синтаксис С++.А скажем для разработки макросов Microsoft Office вообще подходит только бейсик VBA.Пусть от бейсика и реально становятся идиотами, а макрос MS Office все равно на нем писать надо.А вот что действительно брать не стоит в качестве первого языка - так это Python.Мало того, что он вообще мало для чего годен (есть лучшие и более популярные аналоги наверно во всех областях) , так у него еще и слишком простой синтаксис. После него будет сложно писать на чем-то еще. Будет непонятно, зачем в бейсиках, паскалях, сях -фигурные скобки, begin..end и тому подобные конструкции, ведь в питоне, в отличие от подавляющего большинства современных языков, их нет.

Delphi - это правда не язык, а среда визуального программирования, использующая Паскаль.

Create discussion. Edit. Посоветуйте java-компилятор для android. Ekaterina Dontsova. nbsp ... Цель не писать приложения под андроид, а именно скомпилировать и запустить что-нибудь просткнькое на android.

Basic. Но нужно ли оно тебе ?

Ваш опыт программирования

На Java и Python пишут еще и не веб приложения)

Комментариев еще нет. Разработка приложения для Android на Android с AIDE - Android Java IDE AIDE представляет собой интегрированную среду разработки IDE ...

Приложения С/С++ с графической оболочкой (WinAPI/Qt) еще более громоздкие, чем приложения на Delphi.К сожалению, системное программирование требует большой стаж работы с ним. И вряд-ли вы будете зарабатывать хоть какие-то деньги пройдя основы. С Веб-программированием проще. Особенно если вы креативный человек... Желаю вам удачи в поиске того, чем бы вы хотели заниматься.

Сейчас востребован .Net и и Java. Я сейчас занимаюсь написанием парсеров/брутфорсов/чекеров на C#

"нам толком не объяснили как работают классы". ООП это то, что нужно знать обязательно.

А я врач, а программированием подрабатываю.Подход неверный у вас.Языки учить вообще не стоит, это вам не стишки, вызубрил, оттарабанил наизусть, садись, пять. Стоит учиться ПРОГРАММИРОВАТЬ с помощью определенных инструментов, которые отнюдь не сводятся к языку.Вакансий, где достаточно знать язык, НЕ СУЩЕСТВУЕТ, Всегда надо знать еще туеву хучу всего. Например, IDE C++ Builder, базу данных MySQL и библиотеку FastReport - это считается вакансия с небольшими требованиями и соответственно она будет с небольшой зарплатой.Представьте человека, вызубрившего наизусть англо-русский и русско-английский словари и английскую грамматику.Он может вам целую лекцию прочесть про прошедшие времена глаголов в английском языке.Но объяснить иностранцу, как ему из Домодедова добраться до Белорусского вокзала, он не сможет. Заработать что-то как переводчик - тем более. И что толку в его зубрежке?Не учите языки.Учитесь ПРОГРАММИРОВАТЬ на языках.Кто умеет программировать, тот легко перейдет на другой язык, если понадобится.Поэтому начать надо с постановки задач и с выбора-скачивания-установки среды разработки и прочих инструментов. Выбор зависит от задач!Что вы хотите написать?Вот его и начните писать.И под него выбирайте язык.Самое сложное в программировании - изучение библиотек, а не языков.И составление алгоритмов решения практических задач."Уча язык", вы этому не научитесь.

1. Языки для написания сайтов это javascript (не путать с java), php (серверский язык, на нем можно хороший сайт сверстать), perl я его не знаю как и руби.2. Языки для написания приложений под компьютер а еще лучше под смартфон ( android, ios, java) пишутся на языках java, c++.Так трудно сказать с чего начинать, это вам думать.Вообще как начать работу я могу подсказать, находите для себя задачу, например написать крестики-нолики и ищите способы её реализации.

Обзор компиляторов, интерпретаторов и сред разработки для ОС Андроид. hellip AIDE - Android IDE - Java, C . hellip Gambit for Android - интерпретатор или компилятор черт знает чего бесплатный . https play.google.com store apps d...also installed.24 мая 2013

Языки программирования - это инструменты, для выполнения задач. Все зависит от того чем именноо вы хотите заниматься. Есть язык Перл и Пхп, но тот перл не будет так работать как работает тот Пхп. Я это писал всем раньше и буду писать. Почти все востребованы, влияет на это угл зрения самой компании в которую вы хотите.

Как всё сложно)

C++, Java. Пойми эти языки и далеко пойдёшь ..Javarush.ru (С этим сайтом изучи Яву, остальное как пойдёт), Удачи )Кстати для написания сайтов это язык html .. Самый простой и интересный .. Посмотри как создавать сайты для майкрафт-проектов, там тебе школота на пальцах всё расскажет XD

Никакой.

Учи java и мир приложений для тебя

Aide, или android SDK в андроиде. Пожалуй, это наиболее известная IDE под Android. Существует как платная, так и бесплатная версия. nbsp ... javac компилятор Java

Для новичка в этом деле я посоветую web изучив html css вы потратите на это пару недель и получите быстрый результат после учите javascript этот язык си подобен и изучив один си подобный язык не будет труда перейти на другой! т. к они похожиДалее зная js вы перейдете к серверу это php . Php это больно но нужно! Да и после js будет сложновато т. к js асенхронен !Вообщем вам надо выучить любой си подобный язык а вернее его основы и далее искать нужный вам язык и направление .Почему я советую веб это быстрый результат для новичка мало проблем он не чем не хуже других языков !Web это меньше проблем с компиляторами IDE и библиотеками !Посмотрите уроки sorax на ютубе! для начало будет хорошо !

Лично я изучил php с СУБД MySQL (а так же MySQLi, PDO) , кроме того знаю CSS и MVC архитектура, Smarty шаблонизатор, на это у меня ушло 3 года, но учил я сам (так есть самоучка), работаю "на себя" и имею хорошую прибыль в сфере WEB и WAP

statusvsem.ru

Простой способ модификации Android приложения / Хабрахабр

Бывает после релиза приложения его исходники куда-то деваются. Правда ведь, такое постоянно случается? И ничего не остается кроме как декомпилировать его и подправить несколько сотен строк кода и все это нужно сделать максимально быстро.

Вот и у меня появилась задача модифицировать приложение имея всего лишь его apk. И те, кто занимался декомпиляцией приложений знают насколько тяжело его потом скомпилировать.

Декомпиляция
Для Android'а существуют следующие утилиты:
  • ApkTool для декомпиляции ресурсов.
  • Dex2Jar для преобразования dex в jar.
  • JD-GUI для получения исходников из jar.
  • еще рекомендую JAD, некоторые места лучше декомпилирует чем JD-GUI.
Информации по их использованию в интернете достаточно.

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

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

Переопределение классов
Итак, jar это библиотека, так почему бы просто не подключить ее к новому проекту? Кидаем ее в папку libs, наследуемся от главной активити и компилируем. Все работает, главное чтоб не совпадали имена классов, поэтому названия пакетов должно отличаться иначе как минимум совпадут сгенерированные BuildConfig и R.

Таким способом можно отнаследоваться от Activity, Service, BroadcastReceiver и, возможно, некоторых других классов объявляемых в манифесте, так же в манифесте нужно будет указать новые имена классов, иначе они не будут использоваться.

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

Замена классов
Разархивировав jar библиотеку получим class файлы, это скомпилированные классы, заметим, что при сборке проекта в папке bin/classes лежат те же class файлы, а что если подсунуть туда файлы из библиотеки…

Не все так просто, для начала нужно скомпилировать проект. Чтобы использовать классы исходного приложения нужно его как-то присоединить к проекту, но при этом не экспортировать. Делается это просто: из папки libs Эклипс сам экспортирует библиотеки, поэтому перемещаем jar библиотеку в папку lib и подключаем к проекту, в Эклипсе это Project->Preferences->Java Build Path->Libraries->Add Jars… далее во вкладке Order and Export нужно убедиться, что не установлен чекбокс, потому что экспортировать библиотеку нам не нужно, все будет в class файлах.

Теперь берем какой-нибудь класс из декомпилированных исходников приложения, исправляем в нем ошибки компиляции, добавляем, например, показ диалога, чтоб убедиться, что используется именно новый класс. Далее очищаем проект, в Эклипсе это Project->Clean, копируем class файлы в папку bin/classes, собираем проект и все работает!

При следующих сборках проекта нет необходимости его очищать, так что использовать такой способ достаточно удобно. Для облегчения исправления ошибок после декомпиляции я использовал исходники полученные из JD-GUI и JAD, обычно этого было достаточно.

Но вот пришло время собрать релизную версию, а для нее, конечно же, используется обфускатор и выдаст он сотни ошибок на совпадения имен классов и неразрешенные ссылки. Вот теперь пора убрать из скомпилированных class файлов классы, которые были заменены, после этого ошибок не должно быть. Еще одна неприятная особенность сборки релиза — нужно каждый раз очищать проект и копировать class файлы, а то они куда-то пропадают.

Заключение
Таким способом декомпилируются только модифицируемые файлы, что избавляет от исправления ошибок во всех исходниках и улучшает надежность, так как всего часть кода подвергнется процессу декомпиляции — исправления — компиляции.

С большой вероятностью не получится скрыть все следы от оригинального приложения, названия необфусцированных классов таких как Activity и Service, а так же названия их пакетов сохранятся и будут доступны после декомпиляции модифицированного приложения, но для пиратских версий это не проблема, из-за чего стоит защищать приложение, способы защиты аналогичны другим способам защиты от изменения кода.

Обновление классов в jar — идея замены классов пришла из этой возможности для jar библиотеки.

habrahabr.ru


Смотрите также