In this guide we’ll cover how to set up your Java development environment for a Servlet project. We’ll also talk about a couple helpful tools that we recommend for all Java applications that use Twilio: ngrok and the Twilio Java SDK.

Let’s get started!


Java 8 introduced a handful of improvements over previous versions that made development in Java significantly more efficient and enjoyable. Worth mentioning are lambda expressions and the Stream API, among others. Twilio’s Java SDK currently supports Java 8 and 11.

# Check your Java version
$ java -version
java version "1.8.0_31"
Java(TM) SE Runtime Environment (build 1.8.0_31-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.31-b07, mixed mode)

Javaがすでにシステムにインストールされている場合、 java -version を実行してバージョンを確認できます。


How you install Java varies depending on your operating system.

OperatingSystem Instructions
OS X You can find detailed instructions on how to install the Java SDK in the official Oracle site.
Windows OS Xと同様、OracleのサイトにはJava JDKのインストール方法についての指示が含まれています。
Linux Javaをインストールする正確な手順については、ディストリビューションによって異なります。 Ubuntu向けの手順についてはこちらからご確認いただけます。 他のディストリビューションについては、Oracleを参照してください。




  • IntelliJ Ideaはその信頼性と応答性に定評のあるフル機能の統合開発環境(IDE=Integrated Development Environment)です。 コミュニティーディストリビューションには大部分のプロジェクトに十分な機能が含まれていますが、さらに高度な機能が必要な場合は、プラグインを探したり、アルティメット版を購入できます。
  • Eclipse is an all-terrain IDE that can be used to develop in many languages apart from Java and can be extended through a huge amount of plugins.
  • NetBeansは標準で多くの一般的なWeb言語をサポートするIDEで、またプラグインによって簡単に拡張できます。 Javaが初めての場合も使用は簡単です。


To create a new project, we can use Gradle’s ‘init --type java-library’ command which will create the basic folder structure for a Java project and will place some sample files inside:

# Create a new project named "java-twilio-sample"
$ mkdir java-twilio-sample
$ cd java-twilio-sample
$ gradle init --type java-library


Total time: 0.633 secs


$ mkdir -p src/main/webapp/WEB-INF

このフォルダーの中に web.xml という名前のファイルを、以下の内容とともに作成します。

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0"
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">



javax.servlet、Jettyプラグイン、そしてTwilio Java SDKをインポートする

We’re almost ready to start writing our Servlet web application, but first we need to configure Gradle to import the libraries and plugins we need. For this, open the build.gradle file located in the root folder of the project and keep on reading:

Gretty プラグイン

このプラグインを使用すると、Jettyコンテナーを開始し、単体のGradleコマンドを使用してアプリケーションを配置できます。 構成を行うには、下記の2行をbuild.gradleの冒頭に追加してください:

apply plugin: 'war'
apply from: 'https://raw.github.com/gretty-gradle-plugin/gretty/master/pluginScripts/gretty.plugin'

Now to configure the port and the context root of the Jetty instance, paste the next block of code at the end of the file:

gretty {
    httpPort = 8080
    contextPath = '/java-guide'


このパッケージはServletが動作するのに必要です。 依存関係セクションで、次の行を追加します。

compile group: 'javax.servlet', name: 'javax.servlet-api', version: '3.1.0'

Twilio Java SDK

最後に、Twilio SDKが必要です。 依存関係セクション内に次の行をコピー、ペーストしてください:

compile group: 'com.twilio.sdk', name: 'twilio', version: '8.0.0'

You can see the whole build.gradle file after these modifications here. Now in a console, navigate to the project folder and run the next command:

$ gradle build


We can test that our development environment is configured correctly by creating a simple Servlet application. Create a package in src/java folder named ‘guide’. Inside this folder create a Java file called HelloWorldServlet.java and paste the code below:

package guide;

import com.twilio.twiml.Say;
import com.twilio.twiml.TwiMLException;
import com.twilio.twiml.VoiceResponse;

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

public class HelloWorldServlet extends HttpServlet {
   public void doGet(HttpServletRequest req, HttpServletResponse response) throws IOException {
       // Create a TwiML response and add our friendly message.
       VoiceResponse voiceResponse = new VoiceResponse.Builder()
               .say(new Say.Builder("Hello World!").build())

       try {
       } catch (TwiMLException e) {

We can then try running our new Servlet application with the command gradle appRun. You can then open http://localhost:8080/java-guide in your browser and you should see the next TwiML response : <Response><Say>Hello Monkey</Say></Response>.

Install ngrok

サンプルServletアプリケーションで "Hello World!" メッセージがご確認いただけたなら、開発環境の準備は万端です。 しかし、大部分のTwilioプロジェクトにはもうひとつ、ngrokという便利ツールをインストールする必要があります。

Most Twilio services use webhooks to communicate with your application. When Twilio receives an incoming phone call, for example, it reaches out to a URL in your application for instructions on how to handle the call.


Ngrok is our favorite tool for solving this problem. Once started, it provides a unique URL on the ngrok.io domain which will forward incoming requests to your local development environment.

まずは、ngrokのダウンロード・ページにアクセスして、お使いのオペレーティング・システム向けのバイナリーをダウンロードしましょう。 https://ngrok.com/download

Once downloaded, make sure your application is running and then start Ngrok using this command: "./ngrok http 8080". You should see output similar to this:


Look at the “Forwarding” line to see your unique Ngrok domain name (ours is "aaf29606.ngrok.io") and then point your browser at that domain name.

If everything’s working correctly, you should see your application’s “Hello World!” message displayed at your new Ngrok URL.



これで、Servletアプリケーションを構築する準備が整いました。 他にもいくつか有用なリソースがありますのでご紹介しましょう:

The most relevant files of this guide



Jeff Linwood Maylon Pedroso Alex Chan David Prothero Kevin Whinnery Kat King Samuel Mendes Andrew Baker Elmer Thomas Jose Oliveros


We all do sometimes; code is hard. Get help now from our support team, or lean on the wisdom of the crowd by visiting Twilio's Stack Overflow Collective or browsing the Twilio tag on Stack Overflow.



        Please select the reason(s) for your feedback. The additional information you provide helps us improve our documentation:

        Sending your feedback...
        🎉 Thank you for your feedback!
        Something went wrong. Please try again.

        Thanks for your feedback!

        Refer us and get $10 in 3 simple steps!


        Get link

        Get a free personal referral link here


        Give $10

        Your user signs up and upgrade using link


        Get $10

        1,250 free SMSes
        OR 1,000 free voice mins
        OR 12,000 chats
        OR more