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

孙泽嵩
清华大学 软件学院

Reply via email to