forked from typetools/checker-framework
-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathindex.html
179 lines (145 loc) · 6.37 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="en">
<head>
<meta name="generator" content=
"HTML Tidy for Linux (vers 25 March 2009), see www.w3.org">
<title>Checker Framework Tutorial</title>
<link href="webpages/bootstrap/css/bootstrap.css" rel="stylesheet" type=
"text/css">
<script type="text/javascript" src=
"webpages/bootstrap/js/bootstrap.min.js">
</script>
<link href="webpages/css/main.css" rel="stylesheet" type="text/css">
<link rel="icon" type="image/png" href=
"http://types.cs.washington.edu/checker-framework/favicon-checkerframework.png">
</head>
<body>
<div class="top_liner"></div>
<div class="navbar navbar-inverse navbar-fixed-top" style=
"border-bottom: 1px solid #66d;">
<div class="navbar-inner">
<div class="contained">
<ul class="nav">
<li class="heading">Checker Framework:</li>
<li><a href="http://checkerframework.org/">Main Site</a></li>
<li><a href=
"http://types.cs.washington.edu/checker-framework/current/checker-framework-manual.html">
Manual</a></li>
<li><a href=
"https://groups.google.com/forum/?fromgroups#!forum/checker-framework-discuss">
Discussion List</a></li>
<li><a href=
"https://github.com/typetools/checker-framework/issues">Issue
Tracker</a></li>
<li><a href=
"https://github.com/typetools/checker-framework">Source
Code</a></li>
<li><a href=
"http://types.cs.washington.edu/checker-framework/eclipse/">Eclipse
Plugin</a></li>
<li class="active"><a href=
"http://types.cs.washington.edu/checker-framework/tutorial/">Tutorial</a></li>
</ul>
</div>
</div>
</div><img src="http://types.cs.washington.edu/checker-framework/CFLogo.png" alt="Checker Framework logo">
<div class="page-header short" style=
"border-bottom: 1px solid #EEE; border-top: none;">
<h1>Checker Framework Tutorial</h1>
</div>
<div id="introduction">
<div class="page-header short" style="border-top: none;">
<h2>Introduction</h2>
</div>
<div class="section">
<p>The Checker Framework enhances Java's type system to make it more
powerful and useful. This lets software developers detect and
prevent errors in their Java programs. The Checker Framework
includes compiler plug-ins ("checkers") that find bugs or verify
their absence. It also permits software developers to write their
own compiler plug-ins.</p>
<p>In this tutorial, you will learn to use the Checker Framework to
prevent null pointer exceptions, to prevent SQL injection attacks,
and to improve code quality. In this tutorial, you can use the Checker Framework either via its Eclipse plugin or from the command line. Both
tutorials use the same examples. The Checker
Framework can also be used with other <a href=
"http://types.cs.washington.edu/checker-framework/current/checker-framework-manual.html#external-tools">
external tools</a> such as Maven or InteliJ IDEA, but they are
outside of the scope of this tutorial.</p>
</div>
</div>
<div id="eclipsetutorial">
<div class="page-header short">
<h2>Using the Checker Framework Eclipse plugin</h2>
</div>
<div class="section">
<ol>
<li><a href=
"http://types.cs.washington.edu/checker-framework/eclipse/">Install
the Eclipse Plugin</a> and then return to this page.</li>
<li><a href="eclipse-projects.zip">Download</a> and unzip the
Eclipse projects for the tutorial.</li>
<li><a href="webpages/get-started-eclipse.html">Getting
Started</a>, a simple example use of the Nullness Checker</li>
<li><a href="webpages/user-input-eclipse.html">Validating User
Input</a>, an example using the Regex Checker</li>
<li><a href="webpages/security-error-eclipse.html">Finding a
Security Error</a>, a complex example using the Tainting
Checker</li>
<li><a href="webpages/encryption-checker-eclipse.html">Writing an
Encryption Checker</a>, an example of writing your own type
checker</li>
</ol>
</div>
</div>
<div id="commandlinetutorial">
<div class="page-header short">
<h2>Using the Checker Framework from the command line</h2>
</div>
<div class="section">
<ol>
<li><a href=
"http://types.cs.washington.edu/checker-framework/current/checker-framework-manual.html#installation">
Install the Checker Framework</a> and then return to this page.<br/>
As described in the installation instructions,
<a href="http://types.cs.washington.edu/checker-framework/current/checker-framework-manual.html#javac-installation">set
the alias
<code>javacheck</code></a> to the Checker Framework compiler.</li>
<li><a href="sourcefiles.zip">Download</a> and unzip the source
files for the tutorial, and <code>cd</code> to the <code>src</code>
directory.</li>
<li><a href="webpages/get-started-cmd.html">Getting Started</a>, a
simple example use of the Nullness Checker</li>
<li><a href="webpages/user-input-cmd.html">Validating User
Input</a>, an example using the Regex Checker</li>
<li><a href="webpages/security-error-cmd.html">Finding a Security
Error</a>, a complex example using the Tainting Checker</li>
<li><a href="webpages/encryption-checker-cmd.html">Writing an
Encryption Checker</a>, an example of writing your own type
checker</li>
</ol>
</div>
</div>
<div id="resources">
<div class="page-header short">
<h2>Resources</h2>
</div>
<div class="section">
<ul>
<li><a href=
"http://types.cs.washington.edu/checker-framework/current/checker-framework-manual.html">
The Checker Framework Manual</a></li>
<li><a href="http://checkerframework.org/">The Checker Framework
homepage</a></li>
<li>Feel free to <b>contact</b> us! Email <a href=
"mailto:[email protected]">[email protected]</a></li>
</ul>
</div>
</div>
<div class="bottom_liner"></div>
<!-- LocalWords: Plugin plugin VM SDK plugins quals classpath
-->
<!-- LocalWords: NullnessChecker plugin's hg
-->
</body>
</html>