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" <[email protected]>
> 发送时间: 2019-09-19 14:19:49 (星期四)
> 收件人: [email protected]
> 抄送:
> 主题: 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 <[email protected]> 于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
> > 收件人: [email protected]
> > 主题: 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<[email protected]> 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 <[email protected]> 于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" <[email protected]>
> > 发送时间: 2019-09-05 09:17:45 (星期四)
> > 收件人: [email protected]
> > 抄送:
> > 主题: 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" <[email protected]>
> > 发送时间: 2019-09-05 09:05:29 (星期四)
> > 收件人: "[email protected]" <[email protected]>
> > 抄送: "[email protected]" <[email protected]>
> > 主题: 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
> > |
> > |
> > [email protected]
> > |
> > 签名由网易邮箱大师定制
> > On 9/5/2019 08:55,Jialin Qiao<[email protected]> 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" <[email protected]>
> > 发送时间: 2019-09-04 22:20:54 (星期三)
> > 收件人: dev <[email protected]>
> > 抄送:
> > 主题: 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
> >
> > 孙泽嵩
> > 清华大学 软件学院
> >
> >
> >