Hi, +1 for not cover system classpath.
In our start shell, you will find we always clear classpath before adding ours: CLASSPATH="" for f in ${IOTDB_HOME}/lib/*.jar; do CLASSPATH=${CLASSPATH}":"$f done Best, -- Jialin Qiao School of Software, Tsinghua University 乔嘉林 清华大学 软件学院 > -----原始邮件----- > 发件人: "Xiangdong Huang" <saint...@gmail.com> > 发送时间: 2019-09-19 14:19:49 (星期四) > 收件人: dev@iotdb.apache.org > 抄送: > 主题: Re: Resolve "input line is too long" in windows os > > Hi, > > JVM loads a set of jars according to the order of users declaration. > > If you set classpath=log4j-1.1.jar : log4j-0.9.jar : log4j-1.2.jar, then > JVM will load log4-1.1.jar first. If there are duplicate files among the 3 > jars, then only the first one will be loaded into JVM. > > That is why we must set it as classpath= %iotdb classpath% : %system > classpath%. > > Though for current version of IoTDB, you can just set classpath= %iotdb > classpath%, I'd like to do not cover system classpath, because it is more > general. > > Best, > ----------------------------------- > Xiangdong Huang > School of Software, Tsinghua University > > 黄向东 > 清华大学 软件学院 > > > JT <jt2594...@163.com> 于2019年9月19日周四 下午2:01写道: > > > Hi, > > > > Should we really include the original CLASSPATH? We may get ourselves into > > trouble if it contains some incompatible or conflict dependencies with > > those in IoTDB. For example, if the user has put an old Log4j into > > CLASSPATH, the system log may fail. > > > > Tian Jiang > > > > 发送自 Windows 10 版邮件应用 > > > > 发件人: Lei Rui > > 发送时间: 2019年9月19日 13:42 > > 收件人: dev@iotdb.apache.org > > 主题: Re: Resolve "input line is too long" in windows os > > > > Hi, > > > > > > Ok then it looks like `start-server.bat` needs changing because now it is > > > > > > ``` > > @REM ***** CLASSPATH library setting ***** > > @REM Ensure that any user defined CLASSPATH variables are not used on > > startup > > set CLASSPATH="%IOTDB_HOME%\lib" > > @REM For each jar in the IOTDB_HOME lib directory call append to build the > > CLASSPATH variable. > > set CLASSPATH=%CLASSPATH%;"%IOTDB_HOME%\lib\*" > > set CLASSPATH=%CLASSPATH%;iotdb.IoTDB > > goto okClasspath > > ``` > > > > > > Lei Rui > > On 9/19/2019 13:33,Xiangdong Huang<saint...@gmail.com> wrote: > > Hi, > > > > set CLASSPATH=%CLASSPATH%;%IOTDB_CLI_HOME%\lib\* > > > > Normally, the better way is : > > > > set CLASSPATH=%IOTDB_CLI_HOME%\lib\*;%CLASSPATH% > > > > It means load %IOTDB_CLI_HOME%\lib\* first, and then %CLASSPATH% that the > > system original having. > > > > Best, > > ----------------------------------- > > Xiangdong Huang > > School of Software, Tsinghua University > > > > 黄向东 > > 清华大学 软件学院 > > > > > > Jialin Qiao <qj...@mails.tsinghua.edu.cn> 于2019年9月5日周四 上午9:21写道: > > > > > > Ha....not iotdb-env.sh, it is in the start-client.bat, import-csv.bat and > > export-csv.bat... > > > > Best > > -- > > Jialin Qiao > > School of Software, Tsinghua University > > > > 乔嘉林 > > 清华大学 软件学院 > > > > -----原始邮件----- > > 发件人: "Jialin Qiao" <qj...@mails.tsinghua.edu.cn> > > 发送时间: 2019-09-05 09:17:45 (星期四) > > 收件人: dev@iotdb.apache.org > > 抄送: > > 主题: Re: Resolve "input line is too long" in windows os > > > > Hi, > > > > Ok, I found this in the current iotdb-env.sh: > > > > ``` > > @REM Ensure that any user defined CLASSPATH variables are not used on > > startup > > set CLASSPATH="" > > ``` > > > > Best, > > -- > > Jialin Qiao > > School of Software, Tsinghua University > > > > 乔嘉林 > > 清华大学 软件学院 > > > > -----原始邮件----- > > 发件人: "Tian Jiang" <jt2594...@163.com> > > 发送时间: 2019-09-05 09:05:29 (星期四) > > 收件人: "dev@iotdb.apache.org" <dev@iotdb.apache.org> > > 抄送: "dev@iotdb.apache.org" <dev@iotdb.apache.org> > > 主题: Re: Resolve "input line is too long" in windows os > > > > Hi, > > > > > > I think it is fine, since we are not sure what %CLASSPATH% would be > > originally, if we depend on some unknown external dependencies, things may > > get uncontrollable. > > > > > > Tian Jiang > > > > > > | | > > Tian Jiang > > | > > | > > jt2594...@163.com > > | > > 签名由网易邮箱大师定制 > > On 9/5/2019 08:55,Jialin Qiao<qj...@mails.tsinghua.edu.cn> wrote: > > Hi Zesong, > > > > Thanks for sharing your experience :) > > > > I just have a question about this line: > > > > set CLASSPATH=%IOTDB_CLI_HOME%\lib\* > > > > Should it be the following command? > > > > set CLASSPATH=%CLASSPATH%;%IOTDB_CLI_HOME%\lib\* > > > > Best, > > -- > > Jialin Qiao > > School of Software, Tsinghua University > > > > 乔嘉林 > > 清华大学 软件学院 > > > > -----原始邮件----- > > 发件人: "Zesong Sun" <samperson_...@foxmail.com> > > 发送时间: 2019-09-04 22:20:54 (星期三) > > 收件人: dev <dev@iotdb.apache.org> > > 抄送: > > 主题: Resolve "input line is too long" in windows os > > > > Hi, > > > > > > > > > > Recently I have encountered a problem when updating maven dependency > > in tsfile module: when starting client in windows os, I will get an error: > > "The input line is too long." > > > > > > It is resulted by limitation of the maximum length of the string that > > can be used at the command line: "On computers running Microsoft Windows XP > > or later, the maximum length of the string that you can use at the command > > prompt is 8191 characters. On computers running Microsoft Windows 2000 or > > Windows NT 4.0, the maximum length of the string that you can use at the > > command prompt is 2047 characters. This limitation applies to the command > > line, individual environment variables (such as the PATH variable) that are > > inherited by other processes, and all environment variable expansions. If > > you use Command Prompt to run batch files, this limitation also applies to > > batch file processing.” [1] > > > > > > With the suggestion of @Jialin Qiao, I reduced the dependency (from > > hadoop-client to hadoop-common), and local tests are all passed. However, > > the tests on Travis CI still failed. > > > > > > Thanks to @Tian Jiang, I changed the set CLASSPATH statement in .bat > > file of starting client: > > > > > > Previous: > > ``` > > for %%i in ("%IOTDB_CLI_HOME%\lib\*.jar") do call :append "%%i" > > goto okClasspath > > > > > > :append > > set CLASSPATH=%CLASSPATH%;%1 > > goto :eof > > > > ``` > > > > > > And now: > > ``` > > set CLASSPATH=%IOTDB_CLI_HOME%\lib\* > > ``` > > > > > > This avoid too long input line of CLASSPATH, which resolves the > > problem. > > > > > > The error confused me for really a long time... And I think maybe this > > solution will help you in the future. If you have any other suggestions and > > ideas, welcome to discuss with us : ) > > > > > > > > > > [1] > > > > https://support.microsoft.com/en-us/help/830473/command-prompt-cmd-exe-command-line-string-limitation > > > > > > > > > > > > BR, > > ------------------ > > Zesong Sun > > School of Software, Tsinghua University > > > > 孙泽嵩 > > 清华大学 软件学院 > > > > > >