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 孙泽嵩 清华大学 软件学院
