小编Dr.*_*son的帖子

自1.3以来添加到Java核心?

我开始了一份小合同工作,要求我使用Java.我被项目经理给了一本Java书,但是它涵盖了Java 1.3,我知道Java现在大概是1.6.我想知道在获得本书的基础知识后,我是否可以阅读该语言的主要核心内容?

java core

2
推荐指数
2
解决办法
332
查看次数

无法导入javax.servlet

我知道这是一个常见的错误,但请耐心等待.我一直在追求CLASSPATH问题,我认为这不是问题所在.我收到这样的错误.

./src/process.java:2: package javax.servlet does not exist
import javax.servlet.*;
Run Code Online (Sandbox Code Playgroud)

我安装了Tomcat和Java SDK,我知道Tomcat应该提供servlet API.但它究竟在寻找什么文件?

我有以下设置:JAVA_HOME =/usr/java/jdk1.6.0_16 CLASSPATH =/usr/share/java;/usr/share/java/tomcat6

tomcat的基本目录:/ usr/share/tomcat6在这个目录中,/ usr/share/tomcat6/lib只是/ usr/share/java/tomcat6的符号链接

tomcat6-servlet-2.5-api-6.0.18.jar在/ usr/share/java/tomcat6中,还有什么我需要告诉javac所以它会使用这个库吗?我需要另一个图书馆吗?

作为背景,我正在尝试运行一个hello world servlet.代码如下:

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class process extends HttpServlet {

public void doGet( HttpServletRequest request, 
                   HttpServletResponse response)
              throws ServletException, IOException {

    PrintWriter out = response.getWriter();
    out.println("Hello World");

}
}
Run Code Online (Sandbox Code Playgroud)

当我使用javac编译它时,我得到以下错误(其中包括这是根本原因):

./src/process.java:2: package javax.servlet does not exist
import javax.servlet.*;
^
./src/process.java:3: package javax.servlet.http does not exist
import javax.servlet.http.*;
^
Run Code Online (Sandbox Code Playgroud)

我尝试使用-cp选项在命令行上指定类路径,但我最终得到了相同的结果.

import tomcat servlets javac

2
推荐指数
1
解决办法
7399
查看次数

Erlang escript参数

我真的不明白命令行参数如何与escripts一起使用.从联机帮助页中,我了解到参数作为字符串列表传递给main/1.如何解析传递给main的参数?

考虑以下:

#!/usr/bin/env escript
usage() ->
  io:format("Usage: ~s <port#>~n",[escript:script_name()]),
  halt(1).

main([]) ->
  usage();
main(Args)->
  io:format("Starting test server on port #~s~n",[Args]).
Run Code Online (Sandbox Code Playgroud)

一个简单的测试,只用一个参数看起来很好.

  ./test_server.erl 17001
   Starting test server on port #17001
Run Code Online (Sandbox Code Playgroud)

如果我传入多个参数怎么办?

  ./test_server.erl 17001 8 9 abc
   Starting test server on port #1700189abc
Run Code Online (Sandbox Code Playgroud)

那不是我想要的.我尝试在空格字符上拼出字符串:

  ....
  ArgsList = string:tokens(Args, " "),
  io:format("Length: ~w~n",[length(ArgsList)]),
  ....
Run Code Online (Sandbox Code Playgroud)

产量长度:1

erlang erlang-escript

2
推荐指数
1
解决办法
2018
查看次数

Erlang OTP主管

我正在从Erlang Programming一书中练习练习12-2.我有一个模块db_server_otp,它实现了一个OTP gen_server行为.作为一个独立的模块,我测试了它,它按预期工作.我现在必须为它添加一个主管.根据本章中的示例,我创建了一个模块db_server_sup,如下所示:

-module(db_server_sup).
-export([start/0,init/1]).
-behavior(supervisor).

start() ->
    supervisor:start_link({local, ?MODULE}, ?MODULE, []).

init(_Arguments) ->
    DbServerOtp = {db_server_otp,                %% Id
                   {db_server_otp, start, []},   %% child process
                   permanent,                    %% restart 
                   30000,                        %% shutdown (ms)
                   worker,                       %% type
                   {db_server_otp}},             %% required modules
    {ok, 
     {{one_for_all,           %% terminate all children and restart
       5,                     %% max of n restarts in MaxSeconds
       3600},                 %% MaxSeconds (s)
      [DbServerOtp]}}.        %% child process list
Run Code Online (Sandbox Code Playgroud)

两个模块都位于同一个目录中,我用.beam文件编译这两个模块都在我启动erlang shell的同一个工作目录中.但是,使用erlang shell,我无法启动主管.

Erlang R13B03 (erts-5.7.4) [source] [64-bit] [smp:8:2] [rq:8] [async-threads:0] [hipe] …
Run Code Online (Sandbox Code Playgroud)

erlang gen-server erlang-supervisor

1
推荐指数
1
解决办法
871
查看次数