• ベストアンサー

コンパイルできません

public class AutoReturnMailet extends GenericMailet{ public void service(Mail mail) throws MessagingException {      --中略ーー getMailPart(address, subject, mailBody); } public void getMailPart(Address[] address, String subject, StringBuffer mailBody){ String sv = "localhost"; String db = "mydiaryhp"; String user = "root"; String pass = "diarykey"; String encod = "EUC_JP"; String sql = "INSERT INTO diary(address, subject, mailBody) VALUES(" + "'" + address + "'," + subject + "'," + mailBody + ")"; init(); updateSQL(sql); fin(); public void init(){ --中略-- } public void fin(){ --中略-- } public void updateSQL(String sql){ --中略-- } } } 上のプログラムをコンパイルしようとしても public void init(){ の部分で「式の開始が間違ってます」とのエラーが出ます。 なぜか教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • Teariss
  • ベストアンサー率30% (3/10)
回答No.2

getMailPartメソッドの中に initメソッド(だけじゃなくてfinメソッドとupdateSQLメソッドもですが)を定義してるからじゃないでしょうか?

a8emon
質問者

お礼

ありがとうございます。 回答のおかげで無事に解決しました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.1

こんにちは。 getMailPartメソッド終了の}はありますか?

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • コンパイルエラーについて。

    今晩は。現在javaについて勉強しているのですが、 コンパイルエラーを解決することが出来ません。 プログラムの内容は好きな文字列を入力し、空白文字を取り除き出力するといったものです。 空白はindexOf()メソッドを使って探し出す。 空白削除はdeleteCharAt()メソッドを使って行う。 というのが条件です。 どなたかご回答おまちしております。 class bf2{ public static void main(String args[])throws IOException{ String t = "end"; String str = ""; int l; int i; int xx=0; String kuhaku = " "; BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); while(!str.equals(t)){ System.out.print(">"); str = br.readLine(); if(str.equals(t)) break; l = str.length(); i=0; StringBuffer str2 = new StringBuffer(str); while(i<l){ xx = str2.indexOf(kuhaku); str2.deleteCharAt(xx); //こちらがコンパイルエラー会場です。 i++; System.out.println(str2); } } } } Exception in thread "main" java.lang.StringIndexOutOfBoundsException at java.lang.StringBuffer.deleteCharAt(Unknown Source)

    • ベストアンサー
    • Java
  • JavaでString型をChar型に変換するプログラムが分かりません

    JavaでString型をChar型に変換するプログラムが分かりません;; どなかた助けて下さい。 下のプログラムの何がいけないんでしょうか?? いろいろ間違ってるところはあると思うんですが、教えて下さい! import java.io.*; class { public static void main(String args[]) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str1 = br.readLine(); StringBuffer moji = new StringBuffer(str1); char nyuu=moji;

  • webアプリを作ってます。

    webアプリを作ってます。 sqlの箇所で型の不一致stringからstringは変換できませんと 出てきます。 調べてもわかりませんでした。 どこが間違ってるのか教えてください。 package info.searchman; import 省略 public class Dbinsert extends HttpServlet { /** * */ private static final long serialVersionUID = 1L; private ServletContext context; //private Connection connection; public void init(ServletConfig config) throws ServletException { context=config.getServletContext();} public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=Shift_JIS"); PrintWriter out=response.getWriter(); out.println("<html><head><title>Sample199</title></head><body>"); try { int type=0; String name=null; int price=0; String html=null; //Connection con = null; type=Integer.parseInt(request.getParameter("type")); //name= request.getParameterValues("name"); //String name = request.getParameter("name"); name = redecode(request.getParameter("name")); price=Integer.parseInt(request.getParameter("price")); Class.forName("org.postgresql.Driver"); Connection con = DriverManager.getConnection("jdbc:postgresql:postgres","postgres","gokui"); // ステートメントオブジェクトを生成 Statement stmt = con.createStatement(); String values2 = "(\'"+type+"\', \'"+name+"\', \'"+price+"\')"; String sql="INSERT INTO commodity values " + values2 ; stmt.executeUpdate(sql); //ResultSet rs = stmt.executeQuery(sql); out.println("データを登録しました。"); //out.println("</table>"); //rs.close(); stmt.close(); con.close(); } catch(Exception e) { context.log("denaositekoi"); e.printStackTrace(out); } out.println("</body></html>"); out.close(); } private String redecode(java.lang.String parameter) { // TODO 自動生成されたメソッド・スタブ return null; } }

    • ベストアンサー
    • Java
  • Interfaceを実装して、コンストラクタのエラー

    もともと Tempクラスで public void a() public String b() という2つのメソッドと、 public Temp(String s) という一つのコンストラクタを持っていて、 public interface Tempinterface extends Remote { public void a() throws RemoteException; public String b() throws RemoteException; } という中身のインターフェースを作り、 Tempクラスの一行目を public class Temp extends UnicastRemoteObject implements Tempinterface に変更しました。 今コンパイルの時点で、 public Temp(String s) のコンストラクタで 「unreported exception: java.rmi.RemoteException; must be caught or declared to be thrown」 というエラーが出ています。 インターフェースの中に public Temp(String s) throws RemoteException; という一行を加えたらメソッドじゃないから駄目、 と言われて、 Tempクラスのコンストラクタの中で try、catchしてみたらそんなExceptionは出ない、 と言われて困っています。 これはどうすればいいのでしょうか?

    • ベストアンサー
    • Java
  • 件数取得方法

    以下のソースはSQLを発行して、hashに検索結果を格納しているのですが、 取得した件数を知りたいのですが、どうすればよいでしょうか? 基本的なことかもしれませんが、よろしくお願いします。 public Hashtable hash; public void getData(String param) throws SQLException { StringBuffer strSQL = new StringBuffer(); strSQL.append("SELECT "); strSQL.append(" *"); strSQL.append(" FROM"); strSQL.append(" TABLE"); strSQL.append(" WHERE"); strSQL.append(" NO = "); strSQL.append(param); ArrayList list = DBAccess.SetRecordToArray(strSQL.toString(), 0); hash = (Hashtable)list.get(0); }

    • ベストアンサー
    • Java
  • 正常終了するが追加されない

    batchInsert処理を行うと正常終了しますが、DBには追加されてiいません。 ConnectionMgr.commitConnection(conn);文が終了後実行されています。 SQL文 public void batchInsertSgnbtuInfo(ArrayList list, String rysnoo, String pgmId, Connection conn) throws DBException, SQLException { if (list == null || list.size() < 1) { return; } PreparedStatement pstmt = null; int[] rst = null; //sql文 StringBuffer sql = new StringBuffer(); sql.append(" INSERT INTO sgnjsk_inf (" + " kjikminoo, " + " hnkrrkymd, " + " untbng, " + " sgnetyjyn, " + " sgncod ) " + " VALUES (?, to_timestamp(?, 'yyyy/MM/dd hh24:mi:ss'), ?, ?, ?); try { pstmt = conn.prepareStatement(sql.toString()); //SQL文のパーラメタを設置 for (Iterator it = list.iterator(); it.hasNext();) { SgnbtujskinfInfo info = (SgnbtujskinfInfo) it.next(); int i = 1; // VALUES pstmt.setString(i++, info.getKjikminoo()); pstmt.setString(i++, info.getHnkrrkymd()); // ユニット番号 pstmt.setInt(i++, info.getUntbng()); //資源登録順 pstmt.setInt(i++, info.getSgnetyjyn()); pstmt.setString(i++, info.getSgncod()); pstmt.addBatch(); } pstmt.executeBatch(); } finally { if (pstmt != null) { pstmt.close(); } } } よろしくご教授ください。

  • JavaサーブレットでのGmail送信プログラム

    Javaサーブレットでメールを送信したいと思い、こちら(http://www.utilz.jp/wiki/JavaMail1)のサイトで公開されているソースコードを利用してプログラムを作成したのですがエラーが発生してしまいました。 公開されているプログラムだけで実行した際には動いたので動作環境に問題は無いと思います。 public class send_Gmail extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, MessagingException { send( "*********", // gmail アカウント "*********", // gmail パスワード "*********", // 送信先 "subject", // サブジェクト "body"); // 本文 // コンテンツタイプの設定 response.setContentType("text/html;charset=Windows-31J"); // 出力のためのPrintWriterオブジェクトを取得 PrintWriter out = response.getWriter(); // 一連のコンテンツを出力 out.println("<html><head>"); out.println("<title>スクリプトレット</title>"); out.println("</head><body>"); out.println("メールを送信しました<br />"); out.println("</body></html>"); } private static final Properties PROP; static { PROP = new Properties(); PROP.put("mail.smtp.host", "smtp.gmail.com"); PROP.put("mail.smtp.port", "587"); PROP.put("mail.smtp.auth", "true"); PROP.put("mail.smtp.starttls.enable", "true"); } public void send( String user, String password, String to, String subject, String body) throws MessagingException { Transport transport = null; try { Session sess = Session.getInstance(PROP); MimeMessage mm = new MimeMessage(sess); mm.setFrom(new InternetAddress(user)); mm.setSubject(subject); mm.setRecipient( Message.RecipientType.TO, new InternetAddress(to)); mm.setContent(body, "text/plain; charset=iso-2022-jp"); mm.setHeader("Content-Transfer-Encoding", "7bit"); transport = sess.getTransport("smtp"); transport.connect(user, password); transport.sendMessage(mm, mm.getAllRecipients()); } finally { if (transport != null) { transport.close(); } } } コンパイルすると send_Gmail.java:28: Gmail_test.send_Gmail のdoPost(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse) は javax.servlet.http.HttpServlet の doPost(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse) をオーバーライドできません。オーバーライドされたメソッドは javax.mail.MessagingException をスローしません。 protected void doPost(HttpServletRequest request, HttpServletResponse response) というエラーが出てしまいます。throwsにMessagingExceptionを記述しないと、今度は記述しろというエラーが出てしまい困っています…解決策を教えて下さい。よろしくお願いします。

    • ベストアンサー
    • Java
  • 「オブジェクト志向」の考えかたで質問します。

    「オブジェクト志向」の考えかたで質問します。 いろいろと調べると、 ・繼承 ・カプセル化 ・ポリモーフィズム を総称したのが、「オブジェクト」志向と理解しています。 このとき、 たとえば、 指定するクラスの生徒の情報をとりだすようなソースをつくりたい。 仮に、以下をかんがえてみました。 DB処理は、省いてます。 //実行DAOクラス public class StudentDAO extends StudentDBAccessor{ //指定するクラスに属する生徒をとりだす public List getStudentList(int classNumber){ return super.getStudentList(); } //sql文生成 protected String createSqlSelectStudentList(){ StringBuffer sb = new StringBuffer(); return sb.toString(); } //キーワードを設定 public void setDataSqlStudentList(){ } } public abstract StudentDBAccessor extends DBConnector{ protected List getStudentList(){   //DBそうさ } protected abstract String createSqlStudentList(); protected void setDataSqlStudentList(int classNumber); } //DB接続クラス public class DBConnector{   //省略 } //Beanクラス public class StudentFormBean{ private int studentNumber; private String studentName; public void setStudentNumber(int number){ this.studentNumber = number; } public int getStudentNumber(){ return studentNumber; } } よろしくおねがいします。

    • ベストアンサー
    • Java
  • アクセス用クラスを利用した登録画面の作成。

    DB登録画面をアクセス専用のクラスを利用する形で作成しているのですが、 eclipseのJunitテストを行うとエラーが出てしまいます。 (欲しい値は取れているのですが、その直後に表記されるエラーの原因がよく分かりません。) ↓エラーはこのような内容です。↓ org.postgresql.util.PSQLException: ERROR: 列"id"は型integerですが、式は型character varyingでした Hint: 式を書き換えるかキャストしなければなりません 以下はソースの一部を抜粋です。 //DBアクセス用クラス。 public final class DataBaseAccess { ・・・・ public void setMultiType(int index, Object value) throws SQLException { statement.setObject(index, value);} public void setMultiType(int index, boolean value) throws SQLException { statement.setBoolean(index, value);} public void setMultiType(int index, byte value) throws SQLException { statement.setByte(index, value);} public void setMultiType(int index, short value) throws SQLException { statement.setShort(index, value);} public void setMultiType(int index, int value) throws SQLException { statement.setInt(index, value);} public void setMultiType(int index, long param) throws SQLException { statement.setLong(index, param);} public void setMultiType(int index, float value) throws SQLException { statement.setFloat(index, value);} public void setMultiType(int index, double value) throws SQLException { statement.setDouble(index, value);} public ResultSet select() throws SQLException { return statement.executeQuery();} public void update() throws SQLException { statement.executeUpdate();} ・・・・ //登録クラス public class CustomerEntry{ public void entry(CustomerBean customerBean) { DataBaseAccess db = new DataBaseAccess(); try {/** DB接続。 */ db.open(); String SQL = "INSERT INTO TB_CUSTOMER VALUES ( ? , ? , ? , ?);"; db.setSql(SQL); for (int i = 0; i < 11; i++) {/** ?に値をセット */ db.setMultiType(1, "int id"); db.setMultiType(2, "String userid"); db.setMultiType(3, "String name");      ・      ・      ・ db.setMultiType(11, "String tel"); db.update(); } db.close(); } } } 長文で申し訳ありませんが、ご教授お願いいたします。

    • ベストアンサー
    • Java
  • JDBCプログラミング

    以下のプログラムは、DBkanri.javaというファイル名で、データベースに接続してデータを取得し、取得したデータを表示させるJSPファイルとともに使います。これを、テーブルの作成、レコード追加、フィールド 追加等の更新をし、更新後のデータも取得できるようなプログラムにアレンジしたいのですが、 どなたか、アドバイスください。お願いします。 ちなみに環境は、tomcat3.2.1 JDK1.3.1_02MS Access2000です。 package Kadai; import java.sql.*; public class DBkanri{ private String driver; private String url; private String user; private String password; private Connection connection; private Statement statement; private ResultSet resultset; public DBkanri(){ driver="sun.jdbc.odbc.JdbcOdbcDriver"; url="jdbc:odbc:CONNECTION"; user="abcde"; password="12345"; } public synchronized void open() throws Exception { Class.forName(driver); connection=DriverManager.getConnection(url, user, password); statement=connection.createStatement(); } public ResultSet getResultSet(String sql) throws Exception { if ( statement.execute(sql) ){ return statement.getResultSet(); } return null; } public void execute(String sql) throws Exception { statement.execute(sql); } public synchronized void close() throws Exception { if( resultset != null ) resultset.close(); if( statement != null ) statement.close(); if( connection != null ) connection.close(); } }

このQ&Aのポイント
  • お金を節約orもらえるというジャンルで、絶対に知っておいた方がいいっていう情報を募集します。
  • 注意事項として、嘘偽りがなく、特定の役職や職業の人じゃないと恩恵が受けられないのはダメ、特定の地域限定のお得術もダメです。
  • 一番お得な情報を提示した人に必ずベストアンサーをつけます。参加した方全員にお礼します。
回答を見る