Erinevus lehekülje "Java" redaktsioonide vahel
(→Märkused) |
(→Java paigaldamine) |
||
(ei näidata 2 kasutaja 21 vahepealset redaktsiooni) | |||
1. rida: | 1. rida: | ||
===Sissejuhatus=== | ===Sissejuhatus=== | ||
− | + | Siin palas ei tule juttu mitte Tsehhis toodetud mootorrattast vaid ühest keelest. | |
+ | |||
+ | * JRE: Java Runtime Environment. Tegemist on java virtuaalmasinaga kus java programmid töötavad. Ühtlasi sisaldab see browseri pluginat ja appleti käivitamist. | ||
+ | |||
+ | * JDK: Täielik tarkvara arenduskomplekt javale, sisaldades ühtlasi ka jre-d, kompilaarorit ja töövahendeid (näiteks JavaDoc, Java Debugger) selleks, et luua ja kompileerida programme. | ||
+ | |||
+ | [[Pilt:CBNux.png]] | ||
===Java paigaldamine=== | ===Java paigaldamine=== | ||
− | + | Esiteks on olemas Oracle JDK ja Open JDK | |
+ | |||
+ | * Oracle (varasemalt Sun) JDK, suletud koodiga java, koos kommertsiaalse toega oracle enda asjadele. | ||
+ | * OpenJDK, avatud koodiga java. Oracle poolt vabaks antud osa koodist. | ||
===Java kasutamine=== | ===Java kasutamine=== | ||
26. rida: | 35. rida: | ||
$ java HelloWorld | $ java HelloWorld | ||
Hello, World | Hello, World | ||
+ | |||
+ | ===Java paketid=== | ||
+ | |||
+ | $ find . -ls | ||
+ | 8212 4 drwxr-xr-x 3 root root 4096 Apr 8 11:27 . | ||
+ | 8214 4 drwxr-xr-x 2 root root 4096 Apr 8 11:27 ./ee/tartu/loomaaed | ||
+ | 8217 4 -rw-r--r-- 1 root root 127 Apr 8 11:24 ./ee/tartu/loomaaed/HelloWorld.java | ||
+ | 8219 4 -rw-r--r-- 1 root root 428 Apr 8 11:27 ./ee/tartu/loomaaed/HelloWorld.class | ||
+ | |||
+ | Kompileerimiseks | ||
+ | |||
+ | $ javac ee/tartu/loomaaed/HelloWorld.java | ||
+ | |||
+ | Käivitamiseks | ||
+ | |||
+ | $ java ee.tartu.loomaaed.HelloWorld | ||
+ | Hello World | ||
+ | |||
+ | ===Klassid=== | ||
+ | |||
+ | package ee.tartu.loomaaed; | ||
+ | |||
+ | public class HelloWorld { | ||
+ | public static void main(String[] args) { | ||
+ | |||
+ | arvutaja arvuti = new arvutaja(); | ||
+ | int summa = arvuti.liitja(4,3); | ||
+ | int vahe = arvuti.lahutaja(4,3); | ||
+ | System.out.println(summa); | ||
+ | System.out.println(vahe); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | class arvutaja { | ||
+ | public int liitja(int a, int b) { | ||
+ | return a + b; | ||
+ | } | ||
+ | |||
+ | public int lahutaja(int a, int b) { | ||
+ | return a - b; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | kus | ||
+ | |||
+ | * class arvutaja { ... } - klass, milles on kirjeldatud kaks funktsiooni, ehk õigemini meetodit, liitja ja lahutaja | ||
+ | * arvutaja arvuti = new arvutaja(); - moodustatakse arvutaja alusel uus objekt nimega arvuti | ||
+ | * arvuti.liitja(4,3); - kasutatajase objekti arvuti meetodit liitja argumentidega 4 ja 3 | ||
+ | |||
+ | Kompileerimine ja kasutamine toimub nagu eelmisel juhul. | ||
+ | |||
+ | ===Ühendus Oracle andmebaasiga=== | ||
+ | |||
+ | Nt Oracle andmebaasiga suhtlemiseks on vajalik draiver ojdbc14.jar (v. 10.2) või ojdbc6.jar (v. 11.2) | ||
+ | |||
+ | $ cat HelloOracle.java | ||
+ | import java.sql.*; | ||
+ | import java.sql.DriverManager; | ||
+ | import java.sql.SQLException; | ||
+ | import java.net.*; | ||
+ | |||
+ | public class HelloOracle | ||
+ | { | ||
+ | public static void main(String args[]) throws SQLException { | ||
+ | Connection con = null; | ||
+ | try { | ||
+ | Class.forName("oracle.jdbc.driver.OracleDriver"); | ||
+ | con = DriverManager.getConnection("jdbc:oracle:thin:@192.168.13.64:1521:loom", \ | ||
+ | "mart", "mardiparool"); | ||
+ | Statement st = con.createStatement(); | ||
+ | ResultSet rs = st.executeQuery("select BANNER from SYS.V_$VERSION"); | ||
+ | while(rs.next()) { | ||
+ | System.out.println(rs.getString(1)); | ||
+ | } | ||
+ | } catch (Exception e) { | ||
+ | e.printStackTrace(); | ||
+ | } finally { | ||
+ | if(con != null) { | ||
+ | con.close(); | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | kus | ||
+ | |||
+ | * loom - oracle baasi SID | ||
+ | |||
+ | Kompileerimiseks | ||
+ | |||
+ | $ export CLASSPATH=ojdbc14.jar:. | ||
+ | $ javac HelloOracle.java | ||
+ | |||
+ | ja käivitamiseks | ||
+ | |||
+ | $ java HelloOracle | ||
+ | |||
+ | Kasulikud lisamaterjalid | ||
+ | |||
+ | * http://www.orafaq.com/wiki/JDBC | ||
+ | * http://www.orafaq.com/wiki/EZCONNECT | ||
===Ühendus PostgreSQL andmebaasiga=== | ===Ühendus PostgreSQL andmebaasiga=== | ||
65. rida: | 175. rida: | ||
$ java HelloPostgresql | $ java HelloPostgresql | ||
+ | |||
+ | ===Ühendus MySQL andmebaasiga=== | ||
+ | |||
+ | Kopeerida draiver aadressilt http://dev.mysql.com/downloads/connector/j/ | ||
+ | |||
+ | $ tar zxf mysql-connector-java-5.1.12.tar.gz | ||
+ | |||
+ | Näiteks selline programm esitab andmebaasi test tabeli inimene tulba nimi väärtused | ||
+ | |||
+ | $ cat HelloMySQL.java | ||
+ | import java.sql.*; | ||
+ | import java.sql.DriverManager; | ||
+ | import java.sql.SQLException; | ||
+ | import java.net.*; | ||
+ | |||
+ | public class HelloMySQL | ||
+ | { | ||
+ | public static void main(String args[]) throws SQLException { | ||
+ | Connection con = null; | ||
+ | try { | ||
+ | Class.forName("com.mysql.jdbc.Driver").newInstance(); | ||
+ | con = DriverManager.getConnection("jdbc:mysql://127.0.0.1/baasinimi?" + \ | ||
+ | "user=kasutajanimi& password=parool"); | ||
+ | Statement st = con.createStatement(); | ||
+ | ResultSet rs = st.executeQuery("SELECT * FROM inimene"); | ||
+ | while(rs.next()) { | ||
+ | System.out.println(rs.getString("nimi")); | ||
+ | } | ||
+ | } catch (Exception e) { | ||
+ | e.printStackTrace(); | ||
+ | } finally { | ||
+ | if(con != null) { | ||
+ | con.close(); | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | Kompileerimiseks | ||
+ | |||
+ | $ export CLASSPATH=mysql-connector-java-5.1.12-bin.jar:. | ||
+ | $ javac HelloMySQL.java | ||
+ | |||
+ | Käivitamiseks | ||
+ | |||
+ | $ java HelloMySQL | ||
+ | |||
+ | ===SMTP=== | ||
+ | |||
+ | ====Plaintext==== | ||
+ | |||
+ | Selleks, et saata läbi postirelee välja kirja sobib kasutada JavaMail API't http://java.sun.com/products/javamail/, mis tuleb kopeerida ja lahti pakkida sobivasse kataloogi, nt /opt/javamail. Praktiliselt on vajalik kasutada sealt arhiivist ainult mail.jar teeki. | ||
+ | |||
+ | import java.util.*; | ||
+ | import javax.mail.*; | ||
+ | import javax.mail.internet.*; | ||
+ | import javax.activation.*; | ||
+ | |||
+ | // Send a simple, single part, text/plain e-mail | ||
+ | public class Kirjasaatja { | ||
+ | |||
+ | public static void main(String[] args) { | ||
+ | |||
+ | String to = "mart@loomaaed.tartu.ee"; | ||
+ | String from = "priit@loomaaed.tartu.ee"; | ||
+ | // meilirelee aadress | ||
+ | String host = "192.168.1.250"; | ||
+ | |||
+ | Properties props = new Properties(); | ||
+ | props.put("mail.smtp.host", host); | ||
+ | // debugimise sisselülitamine | ||
+ | props.put("mail.debug", "false"); | ||
+ | Session session = Session.getInstance(props); | ||
+ | |||
+ | try { | ||
+ | Message msg = new MimeMessage(session); | ||
+ | msg.setFrom(new InternetAddress(from)); | ||
+ | InternetAddress[] address = {new InternetAddress(to)}; | ||
+ | msg.setRecipients(Message.RecipientType.TO, address); | ||
+ | msg.setSubject("Test kiri"); | ||
+ | msg.setSentDate(new Date()); | ||
+ | msg.setText("See on test kiri. " + | ||
+ | "Ja kirja sisu\n"); | ||
+ | Transport.send(msg); | ||
+ | } | ||
+ | catch (MessagingException mex) { | ||
+ | mex.printStackTrace(); | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | Kompileerimiseks ja kasutamiseks sobib öelda | ||
+ | |||
+ | $ export CLASSPATH=/opt/javamail/mail.jar:. | ||
+ | $ javac Kirjasaatja.java | ||
+ | $ java Kirjasaatja | ||
===Märkused=== | ===Märkused=== | ||
77. rida: | 283. rida: | ||
* http://www.fankhausers.com/postgresql/jdbc/ | * http://www.fankhausers.com/postgresql/jdbc/ | ||
* http://en.wikipedia.org/wiki/Jetty_(web_server) | * http://en.wikipedia.org/wiki/Jetty_(web_server) | ||
+ | * http://xahlee.org/java-a-day/java.html | ||
+ | * [[:Apache Tomcat]] |
Viimane redaktsioon: 14. september 2016, kell 12:33
Sisukord
Sissejuhatus
Siin palas ei tule juttu mitte Tsehhis toodetud mootorrattast vaid ühest keelest.
- JRE: Java Runtime Environment. Tegemist on java virtuaalmasinaga kus java programmid töötavad. Ühtlasi sisaldab see browseri pluginat ja appleti käivitamist.
- JDK: Täielik tarkvara arenduskomplekt javale, sisaldades ühtlasi ka jre-d, kompilaarorit ja töövahendeid (näiteks JavaDoc, Java Debugger) selleks, et luua ja kompileerida programme.
Java paigaldamine
Esiteks on olemas Oracle JDK ja Open JDK
- Oracle (varasemalt Sun) JDK, suletud koodiga java, koos kommertsiaalse toega oracle enda asjadele.
- OpenJDK, avatud koodiga java. Oracle poolt vabaks antud osa koodist.
Java kasutamine
Lähtetekst
$ cat HelloWorld.java public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, World"); } }
Kompileerimine, tekib fail HelloWorld.class
$ javac HelloWorld.java
Käivitamine
$ java HelloWorld Hello, World
Java paketid
$ find . -ls 8212 4 drwxr-xr-x 3 root root 4096 Apr 8 11:27 . 8214 4 drwxr-xr-x 2 root root 4096 Apr 8 11:27 ./ee/tartu/loomaaed 8217 4 -rw-r--r-- 1 root root 127 Apr 8 11:24 ./ee/tartu/loomaaed/HelloWorld.java 8219 4 -rw-r--r-- 1 root root 428 Apr 8 11:27 ./ee/tartu/loomaaed/HelloWorld.class
Kompileerimiseks
$ javac ee/tartu/loomaaed/HelloWorld.java
Käivitamiseks
$ java ee.tartu.loomaaed.HelloWorld Hello World
Klassid
package ee.tartu.loomaaed; public class HelloWorld { public static void main(String[] args) { arvutaja arvuti = new arvutaja(); int summa = arvuti.liitja(4,3); int vahe = arvuti.lahutaja(4,3); System.out.println(summa); System.out.println(vahe); } } class arvutaja { public int liitja(int a, int b) { return a + b; } public int lahutaja(int a, int b) { return a - b; } }
kus
- class arvutaja { ... } - klass, milles on kirjeldatud kaks funktsiooni, ehk õigemini meetodit, liitja ja lahutaja
- arvutaja arvuti = new arvutaja(); - moodustatakse arvutaja alusel uus objekt nimega arvuti
- arvuti.liitja(4,3); - kasutatajase objekti arvuti meetodit liitja argumentidega 4 ja 3
Kompileerimine ja kasutamine toimub nagu eelmisel juhul.
Ühendus Oracle andmebaasiga
Nt Oracle andmebaasiga suhtlemiseks on vajalik draiver ojdbc14.jar (v. 10.2) või ojdbc6.jar (v. 11.2)
$ cat HelloOracle.java import java.sql.*; import java.sql.DriverManager; import java.sql.SQLException; import java.net.*; public class HelloOracle { public static void main(String args[]) throws SQLException { Connection con = null; try { Class.forName("oracle.jdbc.driver.OracleDriver"); con = DriverManager.getConnection("jdbc:oracle:thin:@192.168.13.64:1521:loom", \ "mart", "mardiparool"); Statement st = con.createStatement(); ResultSet rs = st.executeQuery("select BANNER from SYS.V_$VERSION"); while(rs.next()) { System.out.println(rs.getString(1)); } } catch (Exception e) { e.printStackTrace(); } finally { if(con != null) { con.close(); } } } }
kus
- loom - oracle baasi SID
Kompileerimiseks
$ export CLASSPATH=ojdbc14.jar:. $ javac HelloOracle.java
ja käivitamiseks
$ java HelloOracle
Kasulikud lisamaterjalid
Ühendus PostgreSQL andmebaasiga
$ cat HelloPostgresql.java import java.sql.*; import java.sql.DriverManager; import java.sql.SQLException; import java.net.*; public class HelloPostgresql { public static void main(String args[]) throws SQLException { Connection con = null; try { Class.forName("org.postgresql.Driver"); con = DriverManager.getConnection("jdbc:postgresql://127.0.0.1/test", "priit", "parool"); Statement st = con.createStatement(); ResultSet rs = st.executeQuery("SELECT * FROM priit.inimene"); while(rs.next()) { System.out.println(rs.getString("nimi")); } } catch (Exception e) { e.printStackTrace(); } finally { if(con != null) { con.close(); } } } }
Kompileerimiseks
$ export CLASSPATH=postgresql-8.4-701.jdbc3.jar:. $ javac HelloPostgresql.java
Käivitamiseks
$ java HelloPostgresql
Ühendus MySQL andmebaasiga
Kopeerida draiver aadressilt http://dev.mysql.com/downloads/connector/j/
$ tar zxf mysql-connector-java-5.1.12.tar.gz
Näiteks selline programm esitab andmebaasi test tabeli inimene tulba nimi väärtused
$ cat HelloMySQL.java import java.sql.*; import java.sql.DriverManager; import java.sql.SQLException; import java.net.*; public class HelloMySQL { public static void main(String args[]) throws SQLException { Connection con = null; try { Class.forName("com.mysql.jdbc.Driver").newInstance(); con = DriverManager.getConnection("jdbc:mysql://127.0.0.1/baasinimi?" + \ "user=kasutajanimi& password=parool"); Statement st = con.createStatement(); ResultSet rs = st.executeQuery("SELECT * FROM inimene"); while(rs.next()) { System.out.println(rs.getString("nimi")); } } catch (Exception e) { e.printStackTrace(); } finally { if(con != null) { con.close(); } } } }
Kompileerimiseks
$ export CLASSPATH=mysql-connector-java-5.1.12-bin.jar:. $ javac HelloMySQL.java
Käivitamiseks
$ java HelloMySQL
SMTP
Plaintext
Selleks, et saata läbi postirelee välja kirja sobib kasutada JavaMail API't http://java.sun.com/products/javamail/, mis tuleb kopeerida ja lahti pakkida sobivasse kataloogi, nt /opt/javamail. Praktiliselt on vajalik kasutada sealt arhiivist ainult mail.jar teeki.
import java.util.*; import javax.mail.*; import javax.mail.internet.*; import javax.activation.*; // Send a simple, single part, text/plain e-mail public class Kirjasaatja { public static void main(String[] args) { String to = "mart@loomaaed.tartu.ee"; String from = "priit@loomaaed.tartu.ee"; // meilirelee aadress String host = "192.168.1.250"; Properties props = new Properties(); props.put("mail.smtp.host", host); // debugimise sisselülitamine props.put("mail.debug", "false"); Session session = Session.getInstance(props); try { Message msg = new MimeMessage(session); msg.setFrom(new InternetAddress(from)); InternetAddress[] address = {new InternetAddress(to)}; msg.setRecipients(Message.RecipientType.TO, address); msg.setSubject("Test kiri"); msg.setSentDate(new Date()); msg.setText("See on test kiri. " + "Ja kirja sisu\n"); Transport.send(msg); } catch (MessagingException mex) { mex.printStackTrace(); } } }
Kompileerimiseks ja kasutamiseks sobib öelda
$ export CLASSPATH=/opt/javamail/mail.jar:. $ javac Kirjasaatja.java $ java Kirjasaatja
Märkused
- Selleks, et java.sun.com võrk töötaks Debian Squeeze 20100402 seisuga, tuleb öelda, http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=560044
# sysctl -w net.ipv6.bindv6only=0